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.11/include/kernel-6.11 b/6.11/include/kernel-6.11 deleted file mode 100644 index 7c126075..00000000 --- a/6.11/include/kernel-6.11 +++ /dev/null @@ -1,2 +0,0 @@ -LINUX_VERSION-6.11 = -LINUX_KERNEL_HASH-6.11 = 55d2c6c025ebc27810c748d66325dd5bc601e8d32f8581d9e77673529bdacb2e diff --git a/6.11/include/kernel-defaults.mk b/6.11/include/kernel-defaults.mk deleted file mode 100644 index 1cc23270..00000000 --- a/6.11/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.11/package/boot/uboot-envtools/files/mediatek_filogic b/6.11/package/boot/uboot-envtools/files/mediatek_filogic deleted file mode 100644 index 6fea40f9..00000000 --- a/6.11/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.11/package/boot/uboot-mediatek/patches/900-add-z8102ax.patch b/6.11/package/boot/uboot-mediatek/patches/900-add-z8102ax.patch deleted file mode 100644 index 00b90aad..00000000 --- a/6.11/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.11/package/kernel/linux/modules/fs.mk b/6.11/package/kernel/linux/modules/fs.mk deleted file mode 100644 index be5d322f..00000000 --- a/6.11/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.11/package/kernel/linux/modules/video.mk b/6.11/package/kernel/linux/modules/video.mk deleted file mode 100644 index d28bb012..00000000 --- a/6.11/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.11/package/kernel/mac80211/patches/ath9k/999-ath9k_kernel-6.11.patch b/6.11/package/kernel/mac80211/patches/ath9k/999-ath9k_kernel-6.11.patch deleted file mode 100644 index 9d763488..00000000 --- a/6.11/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.11/package/kernel/mac80211/patches/build/999-acpi_amd-on-kernel-6.11.patch b/6.11/package/kernel/mac80211/patches/build/999-acpi_amd-on-kernel-6.11.patch deleted file mode 100644 index d9075407..00000000 --- a/6.11/package/kernel/mac80211/patches/build/999-acpi_amd-on-kernel-6.11.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/backport-include/linux/acpi_amd_wbrf.h 2024-09-13 14:55:36.816379630 +0200 -+++ b/backport-include/linux/acpi_amd_wbrf.h 2024-09-13 14:55:47.792224160 +0200 -@@ -7,9 +7,6 @@ - #ifndef _ACPI_AMD_WBRF_H - #define _ACPI_AMD_WBRF_H - --#if LINUX_VERSION_IS_GEQ(6,8,0) --#include_next --#else - #include - #include - -@@ -82,5 +79,4 @@ - return -ENODEV; - } - --#endif /* >=6,8,0 */ - #endif /* _ACPI_AMD_WBRF_H */ diff --git a/6.11/package/kernel/mac80211/patches/build/999-assign_str-on-kernel-6.11.patch b/6.11/package/kernel/mac80211/patches/build/999-assign_str-on-kernel-6.11.patch deleted file mode 100644 index cf2b6556..00000000 --- a/6.11/package/kernel/mac80211/patches/build/999-assign_str-on-kernel-6.11.patch +++ /dev/null @@ -1,541 +0,0 @@ ---- a/net/wireless/trace.h 2024-09-13 13:11:10.145025393 +0200 -+++ b/net/wireless/trace.h 2024-09-13 13:14:21.774308452 +0200 -@@ -372,7 +372,7 @@ - ), - TP_fast_assign( - WIPHY_ASSIGN; -- __assign_str(vir_intf_name, name ? name : ""); -+ __assign_str(vir_intf_name); - __entry->type = type; - ), - TP_printk(WIPHY_PR_FMT ", virtual intf name: %s, type: %d", ---- a/net/mac80211/trace.h 2024-09-13 13:27:20.887264216 +0200 -+++ b/net/mac80211/trace.h 2024-09-13 13:29:33.057391014 +0200 -@@ -33,7 +33,7 @@ - __string(vif_name, sdata->name) - #define VIF_ASSIGN __entry->vif_type = sdata->vif.type; __entry->sdata = sdata; \ - __entry->p2p = sdata->vif.p2p; \ -- __assign_str(vif_name, sdata->name) -+ __assign_str(vif_name) - #define VIF_PR_FMT " vif:%s(%d%s)" - #define VIF_PR_ARG __get_str(vif_name), __entry->vif_type, __entry->p2p ? "/p2p" : "" - ---- a/drivers/bus/mhi/host/trace.h 2024-09-13 13:31:32.207702337 +0200 -+++ b/drivers/bus/mhi/host/trace.h 2024-09-13 13:32:22.330991957 +0200 -@@ -103,7 +103,7 @@ - ), - - TP_fast_assign( -- __assign_str(name, mhi_cntrl->mhi_dev->name); -+ __assign_str(name); - __entry->ch_num = mhi_chan->chan; - __entry->wp = mhi_tre; - __entry->tre_ptr = mhi_tre->ptr; -@@ -131,7 +131,7 @@ - ), - - TP_fast_assign( -- __assign_str(name, mhi_cntrl->mhi_dev->name); -+ __assign_str(name); - __entry->local_ee = mhi_cntrl->ee; - __entry->state = mhi_cntrl->dev_state; - __entry->dev_ee = dev_ee; -@@ -158,7 +158,7 @@ - ), - - TP_fast_assign( -- __assign_str(name, mhi_cntrl->mhi_dev->name); -+ __assign_str(name); - if (pm_state) - pm_state = __fls(pm_state); - __entry->pm_state = pm_state; -@@ -184,7 +184,7 @@ - ), - - TP_fast_assign( -- __assign_str(name, mhi_cntrl->mhi_dev->name); -+ __assign_str(name); - __entry->rp = rp; - __entry->ptr = rp->ptr; - __entry->dword0 = rp->dword[0]; -@@ -226,7 +226,7 @@ - ), - - TP_fast_assign( -- __assign_str(name, mhi_cntrl->mhi_dev->name); -+ __assign_str(name); - __entry->ch_num = mhi_chan->chan; - __entry->state = state; - __entry->reason = reason; -@@ -265,7 +265,7 @@ - ), - - TP_fast_assign( -- __assign_str(name, mhi_cntrl->mhi_dev->name); -+ __assign_str(name); - __entry->state = state; - ), - ---- a/drivers/net/wireless/ath/ath10k/trace.h 2024-09-13 13:31:32.087704038 +0200 -+++ b/drivers/net/wireless/ath/ath10k/trace.h 2024-09-13 13:35:37.760222205 +0200 -@@ -55,8 +55,8 @@ - __vstring(msg, vaf->fmt, vaf->va) - ), - TP_fast_assign( -- __assign_str(device, dev_name(ar->dev)); -- __assign_str(driver, dev_driver_string(ar->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __assign_vstr(msg, vaf->fmt, vaf->va); - ), - TP_printk( -@@ -92,8 +92,8 @@ - __vstring(msg, vaf->fmt, vaf->va) - ), - TP_fast_assign( -- __assign_str(device, dev_name(ar->dev)); -- __assign_str(driver, dev_driver_string(ar->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->level = level; - __assign_vstr(msg, vaf->fmt, vaf->va); - ), -@@ -121,10 +121,10 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ar->dev)); -- __assign_str(driver, dev_driver_string(ar->dev)); -- __assign_str(msg, msg); -- __assign_str(prefix, prefix); -+ __assign_str(device); -+ __assign_str(driver); -+ __assign_str(msg); -+ __assign_str(prefix); - __entry->buf_len = buf_len; - memcpy(__get_dynamic_array(buf), buf, buf_len); - ), -@@ -152,8 +152,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ar->dev)); -- __assign_str(driver, dev_driver_string(ar->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->id = id; - __entry->buf_len = buf_len; - memcpy(__get_dynamic_array(buf), buf, buf_len); -@@ -182,8 +182,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ar->dev)); -- __assign_str(driver, dev_driver_string(ar->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->id = id; - __entry->buf_len = buf_len; - memcpy(__get_dynamic_array(buf), buf, buf_len); -@@ -211,8 +211,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ar->dev)); -- __assign_str(driver, dev_driver_string(ar->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->buf_len = buf_len; - memcpy(__get_dynamic_array(buf), buf, buf_len); - ), -@@ -239,8 +239,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ar->dev)); -- __assign_str(driver, dev_driver_string(ar->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->hw_type = ar->hw_rev; - __entry->buf_len = buf_len; - memcpy(__get_dynamic_array(buf), buf, buf_len); -@@ -269,8 +269,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ar->dev)); -- __assign_str(driver, dev_driver_string(ar->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->hw_type = ar->hw_rev; - __entry->buf_len = buf_len; - memcpy(__get_dynamic_array(pktlog), buf, buf_len); -@@ -301,8 +301,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ar->dev)); -- __assign_str(driver, dev_driver_string(ar->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->msdu_id = msdu_id; - __entry->msdu_len = msdu_len; - __entry->vdev_id = vdev_id; -@@ -332,8 +332,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ar->dev)); -- __assign_str(driver, dev_driver_string(ar->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->msdu_id = msdu_id; - ), - -@@ -358,8 +358,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ar->dev)); -- __assign_str(driver, dev_driver_string(ar->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->len = ath10k_frm_hdr_len(data, len); - memcpy(__get_dynamic_array(data), data, __entry->len); - ), -@@ -386,8 +386,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ar->dev)); -- __assign_str(driver, dev_driver_string(ar->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->len = len - ath10k_frm_hdr_len(data, len); - memcpy(__get_dynamic_array(payload), - data + ath10k_frm_hdr_len(data, len), __entry->len); -@@ -435,8 +435,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ar->dev)); -- __assign_str(driver, dev_driver_string(ar->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->hw_type = ar->hw_rev; - __entry->len = len; - memcpy(__get_dynamic_array(rxdesc), data, len); -@@ -472,8 +472,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ar->dev)); -- __assign_str(driver, dev_driver_string(ar->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->type = type; - __entry->timestamp = timestamp; - __entry->code = code; -@@ -505,8 +505,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ar->dev)); -- __assign_str(driver, dev_driver_string(ar->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->len = len; - memcpy(__get_dynamic_array(data), data, len); - ), ---- a/drivers/net/wireless/ath/ath11k/trace.h 2024-09-13 13:31:32.047704605 +0200 -+++ b/drivers/net/wireless/ath/ath11k/trace.h 2024-09-13 13:37:29.026645264 +0200 -@@ -48,8 +48,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ar->ab->dev)); -- __assign_str(driver, dev_driver_string(ar->ab->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->buf_len = buf_len; - __entry->pktlog_checksum = pktlog_checksum; - memcpy(__get_dynamic_array(pktlog), buf, buf_len); -@@ -77,8 +77,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ar->ab->dev)); -- __assign_str(driver, dev_driver_string(ar->ab->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->len = len; - memcpy(__get_dynamic_array(ppdu), data, len); - ), -@@ -105,8 +105,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ar->ab->dev)); -- __assign_str(driver, dev_driver_string(ar->ab->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->len = len; - __entry->log_type = log_type; - memcpy(__get_dynamic_array(rxdesc), data, len); -@@ -130,8 +130,8 @@ - __vstring(msg, vaf->fmt, vaf->va) - ), - TP_fast_assign( -- __assign_str(device, dev_name(ab->dev)); -- __assign_str(driver, dev_driver_string(ab->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __assign_vstr(msg, vaf->fmt, vaf->va); - ), - TP_printk( -@@ -171,8 +171,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ab->dev)); -- __assign_str(driver, dev_driver_string(ab->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->id = id; - __entry->buf_len = buf_len; - memcpy(__get_dynamic_array(buf), buf, buf_len); -@@ -201,8 +201,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ab->dev)); -- __assign_str(driver, dev_driver_string(ab->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->id = id; - __entry->buf_len = buf_len; - memcpy(__get_dynamic_array(buf), buf, buf_len); -@@ -230,8 +230,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ab->dev)); -- __assign_str(driver, dev_driver_string(ab->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->level = level; - WARN_ON_ONCE(vsnprintf(__get_dynamic_array(msg), - ATH11K_MSG_MAX, vaf->fmt, -@@ -262,10 +262,10 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ab->dev)); -- __assign_str(driver, dev_driver_string(ab->dev)); -- __assign_str(msg, msg); -- __assign_str(prefix, prefix); -+ __assign_str(device); -+ __assign_str(driver); -+ __assign_str(msg); -+ __assign_str(prefix); - __entry->buf_len = buf_len; - memcpy(__get_dynamic_array(buf), buf, buf_len); - ), -@@ -292,8 +292,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ab->dev)); -- __assign_str(driver, dev_driver_string(ab->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->len = len; - memcpy(__get_dynamic_array(data), data, len); - ), -@@ -318,8 +318,8 @@ - __field(u32, peer_ps_timestamp) - ), - -- TP_fast_assign(__assign_str(device, dev_name(ar->ab->dev)); -- __assign_str(driver, dev_driver_string(ar->ab->dev)); -+ TP_fast_assign(__assign_str(device); -+ __assign_str(driver); - memcpy(__get_dynamic_array(peer_addr), peer_addr, - ETH_ALEN); - __entry->peer_ps_state = peer_ps_state; ---- a/drivers/net/wireless/ath/ath12k/trace.h 2024-09-13 13:31:32.071704265 +0200 -+++ b/drivers/net/wireless/ath/ath12k/trace.h 2024-09-13 13:38:04.682139931 +0200 -@@ -36,8 +36,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ar->ab->dev)); -- __assign_str(driver, dev_driver_string(ar->ab->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->buf_len = buf_len; - __entry->pktlog_checksum = pktlog_checksum; - memcpy(__get_dynamic_array(pktlog), buf, buf_len); -@@ -73,8 +73,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ar->ab->dev)); -- __assign_str(driver, dev_driver_string(ar->ab->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->len = len; - __entry->info = ar->pdev->timestamp.info; - __entry->sync_tstmp_lo_us = ar->pdev->timestamp.sync_timestamp_hi_us; -@@ -117,8 +117,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ar->ab->dev)); -- __assign_str(driver, dev_driver_string(ar->ab->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->len = len; - __entry->type = type; - __entry->info = ar->pdev->timestamp.info; -@@ -153,8 +153,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, dev_name(ab->dev)); -- __assign_str(driver, dev_driver_string(ab->dev)); -+ __assign_str(device); -+ __assign_str(driver); - __entry->len = len; - memcpy(__get_dynamic_array(data), data, len); - ), ---- a/drivers/net/wireless/ath/ath6kl/trace.h 2024-09-13 13:31:32.079704151 +0200 -+++ b/drivers/net/wireless/ath/ath6kl/trace.h 2024-09-13 13:33:01.462437360 +0200 -@@ -304,8 +304,8 @@ - ), - - TP_fast_assign( -- __assign_str(msg, msg); -- __assign_str(prefix, prefix); -+ __assign_str(msg); -+ __assign_str(prefix); - __entry->buf_len = buf_len; - memcpy(__get_dynamic_array(buf), buf, buf_len); - ), ---- a/drivers/net/wireless/ath/trace.h 2024-09-13 13:31:32.043704662 +0200 -+++ b/drivers/net/wireless/ath/trace.h 2024-09-13 13:44:05.849032491 +0200 -@@ -44,8 +44,8 @@ - ), - - TP_fast_assign( -- __assign_str(device, wiphy_name(wiphy)); -- __assign_str(driver, KBUILD_MODNAME); -+ __assign_str(device); -+ __assign_str(driver); - __assign_vstr(msg, vaf->fmt, vaf->va); - ), - ---- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/tracepoint.h 2024-09-13 13:31:31.999705285 +0200 -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/tracepoint.h 2024-09-13 13:42:28.746405624 +0200 -@@ -41,7 +41,7 @@ - __vstring(msg, vaf->fmt, vaf->va) - ), - TP_fast_assign( -- __assign_str(func, func); -+ __assign_str(func); - __assign_vstr(msg, vaf->fmt, vaf->va); - ), - TP_printk("%s: %s", __get_str(func), __get_str(msg)) -@@ -57,7 +57,7 @@ - ), - TP_fast_assign( - __entry->level = level; -- __assign_str(func, func); -+ __assign_str(func); - __assign_vstr(msg, vaf->fmt, vaf->va); - ), - TP_printk("%s: %s", __get_str(func), __get_str(msg)) ---- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcms_trace_brcmsmac.h 2024-09-13 13:31:32.011705114 +0200 -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcms_trace_brcmsmac.h 2024-09-13 13:42:44.218186836 +0200 -@@ -81,7 +81,7 @@ - __field(u32, mask) - ), - TP_fast_assign( -- __assign_str(dev, dev_name(dev)); -+ __assign_str(dev); - __entry->in_isr = in_isr; - __entry->macintstatus = macintstatus; - __entry->mask = mask; ---- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcms_trace_brcmsmac_msg.h 2024-09-13 13:31:32.011705114 +0200 -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcms_trace_brcmsmac_msg.h 2024-09-13 13:42:52.242073370 +0200 -@@ -71,7 +71,7 @@ - ), - TP_fast_assign( - __entry->level = level; -- __assign_str(func, func); -+ __assign_str(func); - __assign_vstr(msg, vaf->fmt, vaf->va); - ), - TP_printk("%s: %s", __get_str(func), __get_str(msg)) ---- a/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcms_trace_brcmsmac_tx.h 2024-09-13 13:31:32.011705114 +0200 -+++ b/drivers/net/wireless/broadcom/brcm80211/brcmsmac/brcms_trace_brcmsmac_tx.h 2024-09-13 13:43:12.721783766 +0200 -@@ -31,7 +31,7 @@ - __dynamic_array(u8, txh, txh_len) - ), - TP_fast_assign( -- __assign_str(dev, dev_name(dev)); -+ __assign_str(dev); - memcpy(__get_dynamic_array(txh), txh, txh_len); - ), - TP_printk("[%s] txdesc", __get_str(dev)) -@@ -54,7 +54,7 @@ - __field(u16, ackphyrxsh) - ), - TP_fast_assign( -- __assign_str(dev, dev_name(dev)); -+ __assign_str(dev); - __entry->framelen = framelen; - __entry->frameid = frameid; - __entry->status = status; -@@ -85,7 +85,7 @@ - __field(u16, dma_len) - ), - TP_fast_assign( -- __assign_str(dev, dev_name(dev)); -+ __assign_str(dev); - __entry->max_ampdu_len = max_ampdu_len; - __entry->max_ampdu_frames = max_ampdu_frames; - __entry->ampdu_len = ampdu_len; ---- a/drivers/net/wireless/intel/iwlwifi/iwl-devtrace.h 2024-09-13 13:31:31.915706475 +0200 -+++ b/drivers/net/wireless/intel/iwlwifi/iwl-devtrace.h 2024-09-13 13:41:47.314991509 +0200 -@@ -87,7 +87,7 @@ - #endif - - #define DEV_ENTRY __string(dev, dev_name(dev)) --#define DEV_ASSIGN __assign_str(dev, dev_name(dev)) -+#define DEV_ASSIGN __assign_str(dev) - - #include "iwl-devtrace-io.h" - #include "iwl-devtrace-ucode.h" ---- a/drivers/net/wireless/intel/iwlwifi/iwl-devtrace-msg.h 2024-09-13 13:31:31.915706475 +0200 -+++ b/drivers/net/wireless/intel/iwlwifi/iwl-devtrace-msg.h 2024-09-13 13:41:36.363146379 +0200 -@@ -57,7 +57,7 @@ - ), - TP_fast_assign( - __entry->level = level; -- __assign_str(function, function); -+ __assign_str(function); - __assign_vstr(msg, vaf->fmt, vaf->va); - ), - TP_printk("%s", __get_str(msg)) ---- a/include/trace/events/qrtr.h 2024-09-13 13:31:32.207702337 +0200 -+++ b/include/trace/events/qrtr.h 2024-09-13 13:39:51.068635354 +0200 -@@ -102,7 +102,7 @@ - ), - - TP_fast_assign( -- __assign_str(ctrl_pkt_str, ctrl_pkt_str); -+ __assign_str(ctrl_pkt_str); - __entry->sq_node = sq_node; - __entry->sq_port = sq_port; - ), diff --git a/6.11/package/kernel/mac80211/patches/build/999-iwlwifi_compilation-on-kernel-6.11.patch b/6.11/package/kernel/mac80211/patches/build/999-iwlwifi_compilation-on-kernel-6.11.patch deleted file mode 100644 index ce6032ff..00000000 --- a/6.11/package/kernel/mac80211/patches/build/999-iwlwifi_compilation-on-kernel-6.11.patch +++ /dev/null @@ -1,35 +0,0 @@ ---- a/drivers/net/wireless/intel/iwlwifi/mvm/tt.c 2024-09-13 10:39:13.578207092 +0200 -+++ b/drivers/net/wireless/intel/iwlwifi/mvm/tt.c 2024-09-13 10:44:17.201897544 +0200 -@@ -638,28 +638,22 @@ - } - - static int iwl_mvm_tzone_set_trip_temp(struct thermal_zone_device *device, -- int trip, int temp) -+ const struct thermal_trip *trip, int temp) - { - struct iwl_mvm *mvm = thermal_zone_device_priv(device); -- int ret; - - mutex_lock(&mvm->mutex); - - if (!iwl_mvm_firmware_running(mvm) || - mvm->fwrt.cur_fw_img != IWL_UCODE_REGULAR) { -- ret = -EIO; -- goto out; -+ return -EIO; - } - - if ((temp / 1000) > S16_MAX) { -- ret = -EINVAL; -- goto out; -+ return -EINVAL; - } - -- ret = iwl_mvm_send_temp_report_ths_cmd(mvm); --out: -- mutex_unlock(&mvm->mutex); -- return ret; -+ return iwl_mvm_send_temp_report_ths_cmd(mvm); - } - - static struct thermal_zone_device_ops tzone_ops = { diff --git a/6.11/package/kernel/mac80211/patches/build/999-realtek_compilation-on-kernel-6.11.patch b/6.11/package/kernel/mac80211/patches/build/999-realtek_compilation-on-kernel-6.11.patch deleted file mode 100644 index 35d07845..00000000 --- a/6.11/package/kernel/mac80211/patches/build/999-realtek_compilation-on-kernel-6.11.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/drivers/net/wireless/realtek/rtw88/pci.c 2024-09-13 11:32:08.445153484 +0200 -+++ b/drivers/net/wireless/realtek/rtw88/pci.c 2024-09-13 11:32:41.416685911 +0200 -@@ -1612,7 +1612,7 @@ - - static int rtw_pci_request_irq(struct rtw_dev *rtwdev, struct pci_dev *pdev) - { -- unsigned int flags = PCI_IRQ_LEGACY; -+ unsigned int flags = PCI_IRQ_INTX; - int ret; - - if (!rtw_disable_msi) ---- a/drivers/net/wireless/realtek/rtw89/pci.c 2024-09-13 11:43:44.919279936 +0200 -+++ b/drivers/net/wireless/realtek/rtw89/pci.c 2024-09-13 11:44:14.646858619 +0200 -@@ -3565,7 +3565,7 @@ - unsigned long flags = 0; - int ret; - -- flags |= PCI_IRQ_LEGACY | PCI_IRQ_MSI; -+ flags |= PCI_IRQ_INTX | PCI_IRQ_MSI; - ret = pci_alloc_irq_vectors(pdev, 1, 1, flags); - if (ret < 0) { - rtw89_err(rtwdev, "failed to alloc irq vectors, ret %d\n", ret); diff --git a/6.11/package/kernel/mac80211/patches/build/999-virtual_compilation-on-kernel-6.11.patch b/6.11/package/kernel/mac80211/patches/build/999-virtual_compilation-on-kernel-6.11.patch deleted file mode 100644 index 35e20edf..00000000 --- a/6.11/package/kernel/mac80211/patches/build/999-virtual_compilation-on-kernel-6.11.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- a/drivers/net/wireless/virtual/mac80211_hwsim.c 2024-09-13 11:55:26.397341150 +0200 -+++ b/drivers/net/wireless/virtual/mac80211_hwsim.c 2024-09-13 11:57:14.467815378 +0200 -@@ -6612,17 +6612,13 @@ - - static int init_vqs(struct virtio_device *vdev) - { -- vq_callback_t *callbacks[HWSIM_NUM_VQS] = { -- [HWSIM_VQ_TX] = hwsim_virtio_tx_done, -- [HWSIM_VQ_RX] = hwsim_virtio_rx_done, -- }; -- const char *names[HWSIM_NUM_VQS] = { -- [HWSIM_VQ_TX] = "tx", -- [HWSIM_VQ_RX] = "rx", -+ struct virtqueue_info vqs_info[HWSIM_NUM_VQS] = { -+ [HWSIM_VQ_TX] = { "tx", hwsim_virtio_tx_done }, -+ [HWSIM_VQ_RX] = { "rx", hwsim_virtio_rx_done }, - }; - - return virtio_find_vqs(vdev, HWSIM_NUM_VQS, -- hwsim_vqs, callbacks, names, NULL); -+ hwsim_vqs, vqs_info, NULL); - } - - static int fill_vq(struct virtqueue *vq) diff --git a/6.11/package/kernel/mac80211/patches/rt2x00/999-rt2x00-fix-compilation.patch b/6.11/package/kernel/mac80211/patches/rt2x00/999-rt2x00-fix-compilation.patch deleted file mode 100644 index 4a259839..00000000 --- a/6.11/package/kernel/mac80211/patches/rt2x00/999-rt2x00-fix-compilation.patch +++ /dev/null @@ -1,8 +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 */ diff --git a/6.11/package/kernel/mwlwifi/patches/999-fix-compilation.patch b/6.11/package/kernel/mwlwifi/patches/999-fix-compilation.patch deleted file mode 100644 index a0a553c3..00000000 --- a/6.11/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.11/package/kernel/nat46/Makefile b/6.11/package/kernel/nat46/Makefile deleted file mode 100644 index 12b376f8..00000000 --- a/6.11/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.11/package/kernel/nat46/patches/001-fix-kernel-6.10.patch b/6.11/package/kernel/nat46/patches/001-fix-kernel-6.10.patch deleted file mode 100644 index 03e052bc..00000000 --- a/6.11/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.11/package/kernel/nat46/patches/002-fix-kernel-6.11.patch b/6.11/package/kernel/nat46/patches/002-fix-kernel-6.11.patch deleted file mode 100644 index 244c6da1..00000000 --- a/6.11/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.11/package/libs/libnftnl/Makefile b/6.11/package/libs/libnftnl/Makefile deleted file mode 100644 index 038ed1bf..00000000 --- a/6.11/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.11/package/libs/libnftnl/patches/999-01-libnftnl-add-fullcone-expression-support.patch b/6.11/package/libs/libnftnl/patches/999-01-libnftnl-add-fullcone-expression-support.patch deleted file mode 100644 index 0e8b349c..00000000 --- a/6.11/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.11/package/network/config/firewall4/patches/990-unconditionally-allow-ct-status-dnat.patch b/6.11/package/network/config/firewall4/patches/990-unconditionally-allow-ct-status-dnat.patch deleted file mode 100644 index 6ca5d232..00000000 --- a/6.11/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.11/package/network/config/firewall4/patches/999-01-firewall4-add-fullcone-support.patch b/6.11/package/network/config/firewall4/patches/999-01-firewall4-add-fullcone-support.patch deleted file mode 100644 index aad83c53..00000000 --- a/6.11/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.11/package/network/config/firewall4/patches/999-10-forward-rules-in-prerouting.patch b/6.11/package/network/config/firewall4/patches/999-10-forward-rules-in-prerouting.patch deleted file mode 100644 index 3810a121..00000000 --- a/6.11/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.11/package/network/services/dnsmasq/files/dnsmasq.init b/6.11/package/network/services/dnsmasq/files/dnsmasq.init deleted file mode 100755 index 540da7bb..00000000 --- a/6.11/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.11/package/network/utils/nftables/Makefile b/6.11/package/network/utils/nftables/Makefile deleted file mode 100644 index 55a6a4bc..00000000 --- a/6.11/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.11/package/network/utils/nftables/patches/002-nftables-add-fullcone-expression-support.patch b/6.11/package/network/utils/nftables/patches/002-nftables-add-fullcone-expression-support.patch deleted file mode 100644 index 8a7c57e4..00000000 --- a/6.11/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.11/target/linux/generic/config-6.11 b/6.11/target/linux/generic/config-6.11 deleted file mode 100644 index e175d777..00000000 --- a/6.11/target/linux/generic/config-6.11 +++ /dev/null @@ -1,8427 +0,0 @@ -# CONFIG_104_QUAD_8 is not set -CONFIG_32BIT=y -CONFIG_64BIT_TIME=y -# CONFIG_6LOWPAN is not set -# CONFIG_6LOWPAN_DEBUGFS is not set -# CONFIG_6PACK is not set -# CONFIG_8139CP is not set -# CONFIG_8139TOO is not set -# CONFIG_9P_FS is not set -# CONFIG_AB3100_CORE is not set -# CONFIG_AB8500_CORE is not set -# CONFIG_ABP060MG is not set -# CONFIG_ABX500_CORE is not set -# CONFIG_ACCESSIBILITY is not set -# CONFIG_ACENIC is not set -# CONFIG_ACERHDF is not set -# CONFIG_ACER_WIRELESS is not set -# CONFIG_ACER_WMI is not set -# CONFIG_ACORN_PARTITION is not set -# CONFIG_ACPI_ALS is not set -# CONFIG_ACPI_APEI is not set -# CONFIG_ACPI_APEI_PCIEAER is not set -# CONFIG_ACPI_BUTTON is not set -# CONFIG_ACPI_CONFIGFS is not set -# CONFIG_ACPI_CUSTOM_METHOD is not set -# CONFIG_ACPI_EXTLOG is not set -# CONFIG_ACPI_FFH is not set -# CONFIG_ACPI_HED is not set -# CONFIG_ACPI_NFIT is not set -# CONFIG_ACPI_REDUCED_HARDWARE_ONLY is not set -# CONFIG_ACPI_TABLE_UPGRADE is not set -# CONFIG_ACPI_TOSHIBA is not set -# CONFIG_ACPI_VIDEO is not set -# CONFIG_AD2S1200 is not set -# CONFIG_AD2S1210 is not set -# CONFIG_AD2S90 is not set -# CONFIG_AD3552R is not set -# CONFIG_AD5064 is not set -# CONFIG_AD5110 is not set -# CONFIG_AD525X_DPOT is not set -# CONFIG_AD5272 is not set -# CONFIG_AD5360 is not set -# CONFIG_AD5380 is not set -# CONFIG_AD5421 is not set -# CONFIG_AD5446 is not set -# CONFIG_AD5449 is not set -# CONFIG_AD5504 is not set -# CONFIG_AD5592R is not set -# CONFIG_AD5593R is not set -# CONFIG_AD5624R_SPI is not set -# CONFIG_AD5686 is not set -# CONFIG_AD5686_SPI is not set -# CONFIG_AD5696_I2C is not set -# CONFIG_AD5755 is not set -# CONFIG_AD5758 is not set -# CONFIG_AD5761 is not set -# CONFIG_AD5764 is not set -# CONFIG_AD5766 is not set -# CONFIG_AD5770R is not set -# CONFIG_AD5791 is not set -# CONFIG_AD5933 is not set -# CONFIG_AD7091R5 is not set -# CONFIG_AD7124 is not set -# CONFIG_AD7150 is not set -# CONFIG_AD7152 is not set -# CONFIG_AD7192 is not set -# CONFIG_AD7266 is not set -# CONFIG_AD7280 is not set -# CONFIG_AD7291 is not set -# CONFIG_AD7292 is not set -# CONFIG_AD7293 is not set -# CONFIG_AD7298 is not set -# CONFIG_AD7303 is not set -# CONFIG_AD74413R is not set -# CONFIG_AD7476 is not set -# CONFIG_AD7606 is not set -# CONFIG_AD7606_IFACE_PARALLEL is not set -# CONFIG_AD7606_IFACE_SPI is not set -# CONFIG_AD7746 is not set -# CONFIG_AD7766 is not set -# CONFIG_AD7768_1 is not set -# CONFIG_AD7780 is not set -# CONFIG_AD7791 is not set -# CONFIG_AD7793 is not set -# CONFIG_AD7816 is not set -# CONFIG_AD7887 is not set -# CONFIG_AD7923 is not set -# CONFIG_AD7949 is not set -# CONFIG_AD799X is not set -# CONFIG_AD8366 is not set -# CONFIG_AD8801 is not set -# CONFIG_AD9467 is not set -# CONFIG_AD9523 is not set -# CONFIG_AD9832 is not set -# CONFIG_AD9834 is not set -# CONFIG_ADA4250 is not set -# CONFIG_ADAPTEC_STARFIRE is not set -# CONFIG_ADDRESS_MASKING is not set -# CONFIG_ADE7854 is not set -# CONFIG_ADF4350 is not set -# CONFIG_ADF4371 is not set -# CONFIG_ADFS_FS is not set -# CONFIG_ADIN1100_PHY is not set -# CONFIG_ADIN1110 is not set -# CONFIG_ADIN_PHY is not set -# CONFIG_ADIS16080 is not set -# CONFIG_ADIS16130 is not set -# CONFIG_ADIS16136 is not set -# CONFIG_ADIS16201 is not set -# CONFIG_ADIS16203 is not set -# CONFIG_ADIS16209 is not set -# CONFIG_ADIS16240 is not set -# CONFIG_ADIS16260 is not set -# CONFIG_ADIS16400 is not set -# CONFIG_ADIS16460 is not set -# CONFIG_ADIS16475 is not set -# CONFIG_ADIS16480 is not set -# CONFIG_ADI_AXI_ADC is not set -# CONFIG_ADJD_S311 is not set -# CONFIG_ADM6996_PHY is not set -# CONFIG_ADM8211 is not set -# CONFIG_ADMV1013 is not set -# CONFIG_ADMV1014 is not set -# CONFIG_ADMV4420 is not set -# CONFIG_ADMV8818 is not set -# CONFIG_ADRF6780 is not set -# CONFIG_ADT7316 is not set -# CONFIG_ADUX1020 is not set -# CONFIG_ADV_SWBUTTON is not set -CONFIG_ADVISE_SYSCALLS=y -# CONFIG_ADXL313_I2C is not set -# CONFIG_ADXL313_SPI is not set -# CONFIG_ADXL345_I2C is not set -# CONFIG_ADXL345_SPI is not set -# CONFIG_ADXL355_I2C is not set -# CONFIG_ADXL355_SPI is not set -# CONFIG_ADXL367_I2C is not set -# CONFIG_ADXL367_SPI is not set -# CONFIG_ADXL372_I2C is not set -# CONFIG_ADXL372_SPI is not set -# CONFIG_ADXRS290 is not set -# CONFIG_ADXRS450 is not set -CONFIG_AEABI=y -# CONFIG_AFE4403 is not set -# CONFIG_AFE4404 is not set -# CONFIG_AFFS_FS is not set -# CONFIG_AFS_DEBUG_CURSOR is not set -# CONFIG_AFS_FS is not set -# CONFIG_AF_KCM is not set -# CONFIG_AF_RXRPC is not set -# CONFIG_AF_RXRPC_INJECT_LOSS is not set -# CONFIG_AF_RXRPC_IPV6 is not set -CONFIG_AF_UNIX_OOB=y -# CONFIG_AGP is not set -# CONFIG_AHCI_BRCM is not set -# CONFIG_AHCI_CEVA is not set -# CONFIG_AHCI_DWC is not set -# CONFIG_AHCI_IMX is not set -# CONFIG_AHCI_MVEBU is not set -# CONFIG_AHCI_QORIQ is not set -# CONFIG_AHCI_XGENE is not set -CONFIG_AIO=y -# CONFIG_AIRO is not set -# CONFIG_AIRO_CS is not set -# CONFIG_AIX_PARTITION is not set -# CONFIG_AK09911 is not set -# CONFIG_AK8974 is not set -# CONFIG_AK8975 is not set -# CONFIG_AL3010 is not set -# CONFIG_AL3320A is not set -# CONFIG_ALIM7101_WDT is not set -CONFIG_ALLOW_DEV_COREDUMP=y -# CONFIG_ALTERA_MBOX is not set -# CONFIG_ALTERA_MSGDMA is not set -# CONFIG_ALTERA_STAPL is not set -# CONFIG_ALTERA_TSE is not set -# CONFIG_ALX is not set -# CONFIG_AL_FIC is not set -# CONFIG_AM2315 is not set -# CONFIG_AM335X_PHY_USB is not set -# CONFIG_AMBA_PL08X is not set -# CONFIG_AMD8111_ETH is not set -# CONFIG_AMD_MEM_ENCRYPT is not set -# CONFIG_AMD_PHY is not set -# CONFIG_AMD_PMF is not set -# CONFIG_AMD_XGBE is not set -# CONFIG_AMD_XGBE_HAVE_ECC is not set -# CONFIG_AMPERE_ERRATUM_AC03_CPU_38 is not set -# CONFIG_AMIGA_PARTITION is not set -# CONFIG_AMILO_RFKILL is not set -# CONFIG_AMT is not set -# CONFIG_ANDROID is not set -# CONFIG_ANDROID_BINDER_IPC is not set -CONFIG_ANON_INODES=y -# CONFIG_ANON_VMA_NAME is not set -# CONFIG_APDS9300 is not set -# CONFIG_APDS9802ALS is not set -# CONFIG_APDS9960 is not set -# CONFIG_APM8018X is not set -# CONFIG_APM_EMULATION is not set -# CONFIG_APPLE_GMUX is not set -# CONFIG_APPLE_MFI_FASTCHARGE is not set -# CONFIG_APPLE_PROPERTIES is not set -# CONFIG_APPLICOM is not set -# CONFIG_AQTION is not set -# CONFIG_AQUANTIA_PHY is not set -# CONFIG_AR5523 is not set -# CONFIG_AR7 is not set -# CONFIG_AR8216_PHY is not set -# CONFIG_AR8216_PHY_LEDS is not set -# CONFIG_ARCH_ACTIONS is not set -# CONFIG_ARCH_AGILEX is not set -# CONFIG_ARCH_AIROHA is not set -# CONFIG_ARCH_ALPINE is not set -# CONFIG_ARCH_APPLE is not set -# CONFIG_ARCH_ARTPEC is not set -# CONFIG_ARCH_ASPEED is not set -# CONFIG_ARCH_AT91 is not set -# CONFIG_ARCH_AXXIA is not set -# CONFIG_ARCH_BCM is not set -# CONFIG_ARCH_BCM2835 is not set -# CONFIG_ARCH_BCM4908 is not set -# CONFIG_ARCH_BCMBCA is not set -# CONFIG_ARCH_BCM_21664 is not set -# CONFIG_ARCH_BCM_23550 is not set -# CONFIG_ARCH_BCM_281XX is not set -# CONFIG_ARCH_BCM_5301X is not set -# CONFIG_ARCH_BCM_53573 is not set -# CONFIG_ARCH_BCM_63XX is not set -# CONFIG_ARCH_BCM_CYGNUS is not set -# CONFIG_ARCH_BCM_HR2 is not set -# CONFIG_ARCH_BCM_IPROC is not set -# CONFIG_ARCH_BCM_NSP is not set -# CONFIG_ARCH_BERLIN is not set -CONFIG_ARCH_BINFMT_ELF_STATE=y -# CONFIG_ARCH_BITMAIN is not set -# CONFIG_ARCH_BRCMSTB is not set -# CONFIG_ARCH_CLPS711X is not set -# CONFIG_ARCH_CNS3XXX is not set -# CONFIG_ARCH_DAVINCI is not set -# CONFIG_ARCH_DIGICOLOR is not set -# CONFIG_ARCH_DMA_ADDR_T_64BIT is not set -# CONFIG_ARCH_DOVE is not set -# CONFIG_ARCH_EBSA110 is not set -# CONFIG_ARCH_EP93XX is not set -# CONFIG_ARCH_EXYNOS is not set -CONFIG_ARCH_FLATMEM_ENABLE=y -# CONFIG_ARCH_FOOTBRIDGE is not set -CONFIG_ARCH_FORCE_MAX_ORDER=11 -# CONFIG_ARCH_GEMINI is not set -# CONFIG_ARCH_HI3xxx is not set -# CONFIG_ARCH_HIGHBANK is not set -# CONFIG_ARCH_HISI is not set -# CONFIG_ARCH_HPE is not set -# CONFIG_ARCH_INTEGRATOR is not set -# CONFIG_ARCH_INTEL_SOCFPGA is not set -# CONFIG_ARCH_IOP13XX is not set -# CONFIG_ARCH_IOP32X is not set -# CONFIG_ARCH_IOP33X is not set -# CONFIG_ARCH_IXP4XX is not set -# CONFIG_ARCH_K3 is not set -# CONFIG_ARCH_KEEMBAY is not set -# CONFIG_ARCH_KEYSTONE is not set -# CONFIG_ARCH_KS8695 is not set -# CONFIG_ARCH_LAYERSCAPE is not set -# CONFIG_ARCH_LG1K is not set -# CONFIG_ARCH_LPC32XX is not set -# CONFIG_ARCH_MEDIATEK is not set -# CONFIG_ARCH_MESON is not set -# CONFIG_ARCH_MILBEAUT is not set -CONFIG_ARCH_MMAP_RND_BITS=8 -CONFIG_ARCH_MMAP_RND_BITS_MAX=16 -CONFIG_ARCH_MMAP_RND_BITS_MIN=8 -CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MAX=16 -CONFIG_ARCH_MMAP_RND_COMPAT_BITS_MIN=8 -# CONFIG_ARCH_MMP is not set -# CONFIG_ARCH_MSTARV7 is not set -# CONFIG_ARCH_MULTIPLATFORM is not set -# CONFIG_ARCH_MULTI_V6 is not set -# CONFIG_ARCH_MULTI_V7 is not set -# CONFIG_ARCH_MV78XX0 is not set -# CONFIG_ARCH_MVEBU is not set -# CONFIG_ARCH_MXC is not set -# CONFIG_ARCH_MXS is not set -# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set -# CONFIG_ARCH_NETX is not set -# CONFIG_ARCH_NOMADIK is not set -# CONFIG_ARCH_NPCM is not set -# CONFIG_ARCH_NSPIRE is not set -# CONFIG_ARCH_NXP is not set -# CONFIG_ARCH_OMAP is not set -# CONFIG_ARCH_OMAP1 is not set -# CONFIG_ARCH_OMAP2 is not set -# CONFIG_ARCH_OMAP2PLUS is not set -# CONFIG_ARCH_OMAP3 is not set -# CONFIG_ARCH_OMAP4 is not set -# CONFIG_ARCH_ORION5X is not set -# CONFIG_ARCH_OXNAS is not set -# CONFIG_ARCH_PICOXCELL is not set -# CONFIG_ARCH_PRIMA2 is not set -# CONFIG_ARCH_PXA is not set -# CONFIG_ARCH_QCOM is not set -# CONFIG_ARCH_RANDOM is not set -# CONFIG_ARCH_RDA is not set -# CONFIG_ARCH_REALTEK is not set -# CONFIG_ARCH_REALVIEW is not set -# CONFIG_ARCH_RENESAS is not set -# CONFIG_ARCH_ROCKCHIP is not set -# CONFIG_ARCH_RPC is not set -# CONFIG_ARCH_S32 is not set -# CONFIG_ARCH_S3C24XX is not set -# CONFIG_ARCH_S3C64XX is not set -# CONFIG_ARCH_S5PV210 is not set -# CONFIG_ARCH_SA1100 is not set -# CONFIG_ARCH_SEATTLE is not set -# CONFIG_ARCH_SHMOBILE is not set -# CONFIG_ARCH_SIRF is not set -# CONFIG_ARCH_SOCFPGA is not set -# CONFIG_ARCH_SPARX5 is not set -# CONFIG_ARCH_SPRD is not set -# CONFIG_ARCH_STI is not set -# CONFIG_ARCH_STM32 is not set -# CONFIG_ARCH_STRATIX10 is not set -# CONFIG_ARCH_SUNPLUS is not set -# CONFIG_ARCH_SUNXI is not set -# CONFIG_ARCH_SYNQUACER is not set -# CONFIG_ARCH_TANGO is not set -# CONFIG_ARCH_TEGRA is not set -# CONFIG_ARCH_THUNDER is not set -# CONFIG_ARCH_THUNDER2 is not set -# CONFIG_ARCH_U300 is not set -# CONFIG_ARCH_U8500 is not set -# CONFIG_ARCH_UNIPHIER is not set -# CONFIG_ARCH_VERSATILE is not set -# CONFIG_ARCH_VEXPRESS is not set -# CONFIG_ARCH_VIRT is not set -# CONFIG_ARCH_VISCONTI is not set -# CONFIG_ARCH_VT8500 is not set -# CONFIG_ARCH_VULCAN is not set -# CONFIG_ARCH_W90X900 is not set -# CONFIG_ARCH_WANTS_THP_SWAP is not set -# CONFIG_ARCH_WM8505 is not set -# CONFIG_ARCH_WM8750 is not set -# CONFIG_ARCH_WM8850 is not set -# CONFIG_ARCH_XGENE is not set -# CONFIG_ARCH_ZX is not set -# CONFIG_ARCH_ZYNQ is not set -# CONFIG_ARCH_ZYNQMP is not set -# CONFIG_ARCNET is not set -# CONFIG_ARC_EMAC is not set -# CONFIG_ARC_IRQ_NO_AUTOSAVE is not set -# CONFIG_ARM64_4K_PAGES is not set -# CONFIG_ARM64_16K_PAGES is not set -# CONFIG_ARM64_64K_PAGES is not set -# CONFIG_ARM64_AMU_EXTN is not set -# CONFIG_ARM64_BTI is not set -# CONFIG_ARM64_CRYPTO is not set -# CONFIG_ARM64_E0PD is not set -# CONFIG_ARM64_ERRATUM_1024718 is not set -# CONFIG_ARM64_ERRATUM_1165522 is not set -# CONFIG_ARM64_ERRATUM_1286807 is not set -# CONFIG_ARM64_ERRATUM_1319367 is not set -# CONFIG_ARM64_ERRATUM_1418040 is not set -# CONFIG_ARM64_ERRATUM_1463225 is not set -# CONFIG_ARM64_ERRATUM_1508412 is not set -# CONFIG_ARM64_ERRATUM_1530923 is not set -# CONFIG_ARM64_ERRATUM_1542419 is not set -# CONFIG_ARM64_ERRATUM_1742098 is not set -# CONFIG_ARM64_ERRATUM_2051678 is not set -# CONFIG_ARM64_ERRATUM_2054223 is not set -# CONFIG_ARM64_ERRATUM_2067961 is not set -# CONFIG_ARM64_ERRATUM_2077057 is not set -# CONFIG_ARM64_ERRATUM_2441007 is not set -# CONFIG_ARM64_ERRATUM_2441009 is not set -# CONFIG_ARM64_ERRATUM_2658417 is not set -# CONFIG_ARM64_ERRATUM_819472 is not set -# CONFIG_ARM64_ERRATUM_824069 is not set -# CONFIG_ARM64_ERRATUM_826319 is not set -# CONFIG_ARM64_ERRATUM_827319 is not set -# CONFIG_ARM64_ERRATUM_832075 is not set -# CONFIG_ARM64_ERRATUM_834220 is not set -# CONFIG_ARM64_ERRATUM_843419 is not set -# CONFIG_ARM64_ERRATUM_845719 is not set -# CONFIG_ARM64_ERRATUM_858921 is not set -# CONFIG_ARM64_HW_AFDBM is not set -# CONFIG_ARM64_LSE_ATOMICS is not set -CONFIG_ARM64_MODULE_PLTS=y -# CONFIG_ARM64_MTE is not set -# CONFIG_ARM64_PAN is not set -# CONFIG_ARM64_PMEM is not set -# CONFIG_ARM64_PSEUDO_NMI is not set -# CONFIG_ARM64_PTDUMP_DEBUGFS is not set -# CONFIG_ARM64_PTR_AUTH is not set -# CONFIG_ARM64_RANDOMIZE_TEXT_OFFSET is not set -# CONFIG_ARM64_RAS_EXTN is not set -# CONFIG_ARM64_RELOC_TEST is not set -# CONFIG_ARM64_SME is not set -# CONFIG_ARM64_SVE is not set -CONFIG_ARM64_SW_TTBR0_PAN=y -# CONFIG_ARM64_TLB_RANGE is not set -# CONFIG_ARM64_UAO is not set -# CONFIG_ARM64_USE_LSE_ATOMICS is not set -# CONFIG_ARM64_VA_BITS_48 is not set -# CONFIG_ARM64_VHE is not set -# CONFIG_ARM_APPENDED_DTB is not set -# CONFIG_ARM_ARCH_TIMER is not set -# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set -# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set -# CONFIG_ARM_CCI is not set -# CONFIG_ARM_CCI400_PMU is not set -# CONFIG_ARM_CCI5xx_PMU is not set -# CONFIG_ARM_CCI_PMU is not set -# CONFIG_ARM_CCN is not set -# CONFIG_ARM_CMN is not set -# CONFIG_ARM_CPUIDLE is not set -CONFIG_ARM_CPU_TOPOLOGY=y -# CONFIG_ARM_CRYPTO is not set -CONFIG_ARM_DMA_MEM_BUFFERABLE=y -# CONFIG_ARM_DSU_PMU is not set -# CONFIG_ARM_ERRATA_326103 is not set -# CONFIG_ARM_ERRATA_364296 is not set -# CONFIG_ARM_ERRATA_411920 is not set -# CONFIG_ARM_ERRATA_430973 is not set -# CONFIG_ARM_ERRATA_458693 is not set -# CONFIG_ARM_ERRATA_460075 is not set -# CONFIG_ARM_ERRATA_643719 is not set -# CONFIG_ARM_ERRATA_720789 is not set -# CONFIG_ARM_ERRATA_742230 is not set -# CONFIG_ARM_ERRATA_742231 is not set -# CONFIG_ARM_ERRATA_743622 is not set -# CONFIG_ARM_ERRATA_751472 is not set -# CONFIG_ARM_ERRATA_754322 is not set -# CONFIG_ARM_ERRATA_754327 is not set -# CONFIG_ARM_ERRATA_764319 is not set -# CONFIG_ARM_ERRATA_764369 is not set -# CONFIG_ARM_ERRATA_773022 is not set -# CONFIG_ARM_ERRATA_775420 is not set -# CONFIG_ARM_ERRATA_798181 is not set -# CONFIG_ARM_ERRATA_814220 is not set -# CONFIG_ARM_ERRATA_818325_852422 is not set -# CONFIG_ARM_ERRATA_821420 is not set -# CONFIG_ARM_ERRATA_825619 is not set -# CONFIG_ARM_ERRATA_852421 is not set -# CONFIG_ARM_ERRATA_852423 is not set -# CONFIG_ARM_ERRATA_857271 is not set -# CONFIG_ARM_ERRATA_857272 is not set -# CONFIG_ARM_FFA_TRANSPORT is not set -CONFIG_ARM_GIC_MAX_NR=1 -# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set -# CONFIG_ARM_KPROBES_TEST is not set -# CONFIG_ARM_LPAE is not set -# CONFIG_ARM_MEDIATEK_CPUFREQ_HW is not set -# CONFIG_ARM_MHU is not set -# CONFIG_ARM_MHU_V2 is not set -CONFIG_ARM_MODULE_PLTS=y -# CONFIG_ARM_PATCH_PHYS_VIRT is not set -# CONFIG_ARM_PSCI is not set -# CONFIG_ARM_PSCI_CHECKER is not set -# CONFIG_ARM_PSCI_CPUIDLE is not set -# CONFIG_ARM_PTDUMP_DEBUGFS is not set -# CONFIG_ARM_SBSA_WATCHDOG is not set -# CONFIG_ARM_SCMI_PROTOCOL is not set -# CONFIG_ARM_SCPI_PROTOCOL is not set -# CONFIG_ARM_SDE_INTERFACE is not set -# CONFIG_ARM_SMCCC_SOC_ID is not set -# CONFIG_ARM_SMC_WATCHDOG is not set -# CONFIG_ARM_SP805_WATCHDOG is not set -# CONFIG_ARM_SPE_PMU is not set -# CONFIG_ARM_THUMBEE is not set -# CONFIG_ARM_TIMER_SP804 is not set -# CONFIG_ARM_UNWIND is not set -# CONFIG_ARM_VIRT_EXT is not set -# CONFIG_AS3935 is not set -# CONFIG_AS73211 is not set -# CONFIG_ASM9260_TIMER is not set -# CONFIG_ASN1 is not set -# CONFIG_ASUS_LAPTOP is not set -# CONFIG_ASUS_WIRELESS is not set -# CONFIG_ASUS_WMI is not set -# CONFIG_ASYMMETRIC_KEY_TYPE is not set -# CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE is not set -# CONFIG_ASYNC_RAID6_TEST is not set -# CONFIG_ASYNC_TX_DMA is not set -# CONFIG_AT76C50X_USB is not set -# CONFIG_AT803X_PHY is not set -# CONFIG_AT91_SAMA5D2_ADC is not set -# CONFIG_ATA is not set -# CONFIG_ATAGS is not set -CONFIG_ATAGS_PROC=y -# CONFIG_ATALK is not set -# CONFIG_ATARI_PARTITION is not set -# CONFIG_ATA_ACPI is not set -CONFIG_ATA_BMDMA=y -# CONFIG_ATA_FORCE is not set -# CONFIG_ATA_GENERIC is not set -# CONFIG_ATA_LEDS is not set -# CONFIG_ATA_NONSTANDARD is not set -# CONFIG_ATA_OVER_ETH is not set -# CONFIG_ATA_PIIX is not set -CONFIG_ATA_SFF=y -# CONFIG_ATA_VERBOSE_ERROR is not set -# CONFIG_ATH10K is not set -# CONFIG_ATH25 is not set -# CONFIG_ATH5K is not set -# CONFIG_ATH6KL is not set -# CONFIG_ATH79 is not set -# CONFIG_ATH9K is not set -# CONFIG_ATH9K_HTC is not set -# CONFIG_ATH_DEBUG is not set -# CONFIG_ATL1 is not set -# CONFIG_ATL1C is not set -# CONFIG_ATL1E is not set -# CONFIG_ATL2 is not set -# CONFIG_ATLAS_EZO_SENSOR is not set -# CONFIG_ATLAS_PH_SENSOR is not set -# CONFIG_ATM is not set -# CONFIG_ATMEL is not set -# CONFIG_ATMEL_PIT is not set -# CONFIG_ATMEL_SSC is not set -# CONFIG_ATM_AMBASSADOR is not set -# CONFIG_ATM_BR2684 is not set -CONFIG_ATM_BR2684_IPFILTER=y -# CONFIG_ATM_CLIP is not set -CONFIG_ATM_CLIP_NO_ICMP=y -# CONFIG_ATM_DRIVERS is not set -# CONFIG_ATM_DUMMY is not set -# CONFIG_ATM_ENI is not set -# CONFIG_ATM_FIRESTREAM is not set -# CONFIG_ATM_FORE200E is not set -# CONFIG_ATM_HE is not set -# CONFIG_ATM_HORIZON is not set -# CONFIG_ATM_IA is not set -# CONFIG_ATM_IDT77252 is not set -# CONFIG_ATM_LANAI is not set -# CONFIG_ATM_LANE is not set -# CONFIG_ATM_MPOA is not set -# CONFIG_ATM_NICSTAR is not set -# CONFIG_ATM_SOLOS is not set -# CONFIG_ATM_TCP is not set -# CONFIG_ATM_ZATM is not set -# CONFIG_ATOMIC64_SELFTEST is not set -# CONFIG_ATP is not set -# CONFIG_AUDIT is not set -# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set -# CONFIG_AURORA_NB8800 is not set -# CONFIG_AUTOFS4_FS is not set -# CONFIG_AUTOFS_FS is not set -# CONFIG_AUTO_ZRELADDR is not set -# CONFIG_AUXDISPLAY is not set -# CONFIG_AX25 is not set -# CONFIG_AX25_DAMA_SLAVE is not set -# CONFIG_AX88796 is not set -# CONFIG_AX88796B_PHY is not set -# CONFIG_AXP20X_ADC is not set -# CONFIG_AXP20X_POWER is not set -# CONFIG_AXP288_ADC is not set -# CONFIG_AXP288_FUEL_GAUGE is not set -# CONFIG_B43 is not set -# CONFIG_B43LEGACY is not set -# CONFIG_B44 is not set -# CONFIG_B53 is not set -# CONFIG_B53_MDIO_DRIVER is not set -# CONFIG_B53_MMAP_DRIVER is not set -# CONFIG_B53_SERDES is not set -# CONFIG_B53_SPI_DRIVER is not set -# CONFIG_B53_SRAB_DRIVER is not set -# CONFIG_BACKLIGHT_ADP8860 is not set -# CONFIG_BACKLIGHT_ADP8870 is not set -# CONFIG_BACKLIGHT_APPLE is not set -# CONFIG_BACKLIGHT_ARCXCNN is not set -# CONFIG_BACKLIGHT_BD6107 is not set -# CONFIG_BACKLIGHT_CLASS_DEVICE is not set -# CONFIG_BACKLIGHT_GENERIC is not set -# CONFIG_BACKLIGHT_GPIO is not set -# CONFIG_BACKLIGHT_KTD253 is not set -# CONFIG_BACKLIGHT_LCD_SUPPORT is not set -# CONFIG_BACKLIGHT_LED is not set -# CONFIG_BACKLIGHT_LM3630A is not set -# CONFIG_BACKLIGHT_LM3639 is not set -# CONFIG_BACKLIGHT_LP855X is not set -# CONFIG_BACKLIGHT_LV5207LP is not set -# CONFIG_BACKLIGHT_PANDORA is not set -# CONFIG_BACKLIGHT_PM8941_WLED is not set -# CONFIG_BACKLIGHT_PWM is not set -# CONFIG_BACKLIGHT_QCOM_WLED is not set -# CONFIG_BACKLIGHT_RPI is not set -# CONFIG_BACKLIGHT_SAHARA is not set -# CONFIG_BACKTRACE_SELF_TEST is not set -# CONFIG_BACKTRACE_VERBOSE is not set -# CONFIG_BAREUDP is not set -CONFIG_BASE_FULL=y -CONFIG_BASE_SMALL=0 -# CONFIG_BATMAN_ADV is not set -# CONFIG_BATTERY_BQ27XXX is not set -# CONFIG_BATTERY_BQ27XXX_HDQ is not set -# CONFIG_BATTERY_CW2015 is not set -# CONFIG_BATTERY_DS2760 is not set -# CONFIG_BATTERY_DS2780 is not set -# CONFIG_BATTERY_DS2781 is not set -# CONFIG_BATTERY_DS2782 is not set -# CONFIG_BATTERY_GAUGE_LTC2941 is not set -# CONFIG_BATTERY_GOLDFISH is not set -# CONFIG_BATTERY_LEGO_EV3 is not set -# CONFIG_BATTERY_MAX17040 is not set -# CONFIG_BATTERY_MAX17042 is not set -# CONFIG_BATTERY_MAX1721X is not set -# CONFIG_BATTERY_RT5033 is not set -# CONFIG_BATTERY_SAMSUNG_SDI is not set -# CONFIG_BATTERY_SBS is not set -# CONFIG_BATTERY_UG3105 is not set -# CONFIG_BAYCOM_EPP is not set -# CONFIG_BAYCOM_PAR is not set -# CONFIG_BAYCOM_SER_FDX is not set -# CONFIG_BAYCOM_SER_HDX is not set -# CONFIG_BCACHE is not set -# CONFIG_BCM47XX is not set -# CONFIG_BCM54140_PHY is not set -# CONFIG_BCM63XX is not set -# CONFIG_BCM63XX_PHY is not set -# CONFIG_BCM7038_L1_IRQ is not set -# CONFIG_BCM7038_WDT is not set -# CONFIG_BCM7120_L2_IRQ is not set -# CONFIG_BCM7XXX_PHY is not set -# CONFIG_BCM84881_PHY is not set -# CONFIG_BCM87XX_PHY is not set -# CONFIG_BCMA is not set -# CONFIG_BCMA_DRIVER_GPIO is not set -CONFIG_BCMA_POSSIBLE=y -# CONFIG_BCMGENET is not set -# CONFIG_BCM_IPROC_ADC is not set -# CONFIG_BCM_KONA_USB2_PHY is not set -# CONFIG_BCM_SBA_RAID is not set -# CONFIG_BCM_VK is not set -# CONFIG_BDI_SWITCH is not set -# CONFIG_BE2ISCSI is not set -# CONFIG_BE2NET is not set -# CONFIG_BEFS_FS is not set -# CONFIG_BFS_FS is not set -# CONFIG_BGMAC is not set -# CONFIG_BH1750 is not set -# CONFIG_BH1780 is not set -# CONFIG_BIG_KEYS is not set -# CONFIG_BIG_LITTLE is not set -CONFIG_BINARY_PRINTF=y -# CONFIG_BINFMT_AOUT is not set -CONFIG_BINFMT_ELF=y -# CONFIG_BINFMT_ELF_FDPIC is not set -# CONFIG_BINFMT_FLAT is not set -# CONFIG_BINFMT_MISC is not set -CONFIG_BINFMT_SCRIPT=y -CONFIG_BITREVERSE=y -# CONFIG_BLK_CGROUP_IOCOST is not set -# CONFIG_BLK_CGROUP_IOLATENCY is not set -# CONFIG_BLK_CGROUP_IOPRIO is not set -# CONFIG_BLK_CMDLINE_PARSER is not set -# CONFIG_BLK_DEBUG_FS is not set -CONFIG_BLK_DEV=y -# CONFIG_BLK_DEV_3W_XXXX_RAID is not set -# CONFIG_BLK_DEV_4DRIVES is not set -# CONFIG_BLK_DEV_AEC62XX is not set -# CONFIG_BLK_DEV_ALI14XX is not set -# CONFIG_BLK_DEV_ALI15X3 is not set -# CONFIG_BLK_DEV_AMD74XX is not set -# CONFIG_BLK_DEV_ATIIXP is not set -# CONFIG_BLK_DEV_BSG is not set -# CONFIG_BLK_DEV_BSGLIB is not set -# CONFIG_BLK_DEV_CMD640 is not set -# CONFIG_BLK_DEV_CMD64X is not set -# CONFIG_BLK_DEV_COW_COMMON is not set -# CONFIG_BLK_DEV_CRYPTOLOOP is not set -# CONFIG_BLK_DEV_CS5520 is not set -# CONFIG_BLK_DEV_CS5530 is not set -# CONFIG_BLK_DEV_CS5535 is not set -# CONFIG_BLK_DEV_CS5536 is not set -# CONFIG_BLK_DEV_CY82C693 is not set -# CONFIG_BLK_DEV_DAC960 is not set -# CONFIG_BLK_DEV_DELKIN is not set -# CONFIG_BLK_DEV_DM is not set -# CONFIG_BLK_DEV_DRBD is not set -# CONFIG_BLK_DEV_DTC2278 is not set -# CONFIG_BLK_DEV_FD is not set -# CONFIG_BLK_DEV_GENERIC is not set -# CONFIG_BLK_DEV_HPT366 is not set -# CONFIG_BLK_DEV_HT6560B is not set -# CONFIG_BLK_DEV_IDEACPI is not set -# CONFIG_BLK_DEV_IDECD is not set -# CONFIG_BLK_DEV_IDECS is not set -# CONFIG_BLK_DEV_IDEPCI is not set -# CONFIG_BLK_DEV_IDEPNP is not set -# CONFIG_BLK_DEV_IDETAPE is not set -# CONFIG_BLK_DEV_IDE_AU1XXX is not set -# CONFIG_BLK_DEV_IDE_SATA is not set -CONFIG_BLK_DEV_INITRD=y -# CONFIG_BLK_DEV_INTEGRITY is not set -# CONFIG_BLK_DEV_IO_TRACE is not set -# CONFIG_BLK_DEV_IT8172 is not set -# CONFIG_BLK_DEV_IT8213 is not set -# CONFIG_BLK_DEV_IT821X is not set -# CONFIG_BLK_DEV_JMICRON is not set -# CONFIG_BLK_DEV_LOOP is not set -CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 -# CONFIG_BLK_DEV_MD is not set -# CONFIG_BLK_DEV_NBD is not set -# CONFIG_BLK_DEV_NS87415 is not set -# CONFIG_BLK_DEV_NULL_BLK is not set -# CONFIG_BLK_DEV_NVME is not set -# CONFIG_BLK_DEV_OFFBOARD is not set -# CONFIG_BLK_DEV_OPTI621 is not set -# CONFIG_BLK_DEV_PCIESSD_MTIP32XX is not set -# CONFIG_BLK_DEV_PDC202XX_NEW is not set -# CONFIG_BLK_DEV_PDC202XX_OLD is not set -# CONFIG_BLK_DEV_PIIX is not set -# CONFIG_BLK_DEV_PLATFORM is not set -# CONFIG_BLK_DEV_PMEM is not set -# CONFIG_BLK_DEV_QD65XX is not set -# CONFIG_BLK_DEV_RAM is not set -# CONFIG_BLK_DEV_RBD is not set -# CONFIG_BLK_DEV_RSXX is not set -# CONFIG_BLK_DEV_RZ1000 is not set -# CONFIG_BLK_DEV_SC1200 is not set -# CONFIG_BLK_DEV_SD is not set -# CONFIG_BLK_DEV_SIIMAGE is not set -# CONFIG_BLK_DEV_SIS5513 is not set -# CONFIG_BLK_DEV_SKD is not set -# CONFIG_BLK_DEV_SL82C105 is not set -# CONFIG_BLK_DEV_SLC90E66 is not set -# CONFIG_BLK_DEV_SR is not set -# CONFIG_BLK_DEV_SVWKS is not set -# CONFIG_BLK_DEV_SX8 is not set -# CONFIG_BLK_DEV_TC86C001 is not set -# CONFIG_BLK_DEV_THROTTLING is not set -# CONFIG_BLK_DEV_TRIFLEX is not set -# CONFIG_BLK_DEV_TRM290 is not set -# CONFIG_BLK_DEV_UBLK is not set -# CONFIG_BLK_DEV_UMC8672 is not set -# CONFIG_BLK_DEV_UMEM is not set -# CONFIG_BLK_DEV_VIA82CXXX is not set -# CONFIG_BLK_DEV_ZONED is not set -# CONFIG_BLK_INLINE_ENCRYPTION is not set -# CONFIG_BLK_SED_OPAL is not set -# CONFIG_BLK_WBT is not set -CONFIG_BLOCK=y -# CONFIG_BLOCK_LEGACY_AUTOLOAD is not set -# CONFIG_BMA180 is not set -# CONFIG_BMA220 is not set -# CONFIG_BMA400 is not set -# CONFIG_BMC150_ACCEL is not set -# CONFIG_BMC150_MAGN is not set -# CONFIG_BMC150_MAGN_I2C is not set -# CONFIG_BMC150_MAGN_SPI is not set -# CONFIG_BME680 is not set -# CONFIG_BMG160 is not set -# CONFIG_BMI088_ACCEL is not set -# CONFIG_BMI160_I2C is not set -# CONFIG_BMI160_SPI is not set -# CONFIG_BMIPS_GENERIC is not set -# CONFIG_BMP280 is not set -# CONFIG_BNA is not set -# CONFIG_BNX2 is not set -# CONFIG_BNX2X is not set -# CONFIG_BNX2X_SRIOV is not set -# CONFIG_BNXT is not set -# CONFIG_BONDING is not set -# CONFIG_BOOKE_WDT is not set -CONFIG_BOOKE_WDT_DEFAULT_TIMEOUT=3 -# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set -# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set -# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set -# CONFIG_BOOTTIME_TRACING is not set -# CONFIG_BOOT_CONFIG is not set -# CONFIG_BOOT_PRINTK_DELAY is not set -CONFIG_BOOT_RAW=y -# CONFIG_BOSCH_BNO055_I2C is not set -# CONFIG_BOSCH_BNO055_SERIAL is not set -# CONFIG_BOUNCE is not set -CONFIG_BPF=y -# CONFIG_BPFILTER is not set -CONFIG_BPF_JIT=y -# CONFIG_BPF_JIT_ALWAYS_ON is not set -CONFIG_BPF_JIT_DEFAULT_ON=y -# CONFIG_BPF_PRELOAD is not set -# CONFIG_BPF_STREAM_PARSER is not set -CONFIG_BPF_SYSCALL=y -CONFIG_BPF_UNPRIV_DEFAULT_OFF=y -# CONFIG_BPQETHER is not set -CONFIG_BQL=y -CONFIG_BRANCH_PROFILE_NONE=y -# CONFIG_BRCMFMAC is not set -# CONFIG_BRCMSMAC is not set -# CONFIG_BRCMSTB_GISB_ARB is not set -# CONFIG_BRCMSTB_L2_IRQ is not set -CONFIG_BRIDGE=y -# CONFIG_BRIDGE_CFM is not set -# CONFIG_BRIDGE_EBT_802_3 is not set -# CONFIG_BRIDGE_EBT_AMONG is not set -# CONFIG_BRIDGE_EBT_ARP is not set -# CONFIG_BRIDGE_EBT_ARPREPLY is not set -# CONFIG_BRIDGE_EBT_BROUTE is not set -# CONFIG_BRIDGE_EBT_DNAT is not set -# CONFIG_BRIDGE_EBT_IP is not set -# CONFIG_BRIDGE_EBT_IP6 is not set -# CONFIG_BRIDGE_EBT_LIMIT is not set -# CONFIG_BRIDGE_EBT_LOG is not set -# CONFIG_BRIDGE_EBT_MARK is not set -# CONFIG_BRIDGE_EBT_MARK_T is not set -# CONFIG_BRIDGE_EBT_NFLOG is not set -# CONFIG_BRIDGE_EBT_PKTTYPE is not set -# CONFIG_BRIDGE_EBT_REDIRECT is not set -# CONFIG_BRIDGE_EBT_SNAT is not set -# CONFIG_BRIDGE_EBT_STP is not set -# CONFIG_BRIDGE_EBT_T_FILTER is not set -# CONFIG_BRIDGE_EBT_T_NAT is not set -# CONFIG_BRIDGE_EBT_VLAN is not set -CONFIG_BRIDGE_IGMP_SNOOPING=y -# CONFIG_BRIDGE_MRP is not set -# CONFIG_BRIDGE_NETFILTER is not set -# CONFIG_BRIDGE_NF_EBTABLES is not set -CONFIG_BRIDGE_VLAN_FILTERING=y -# CONFIG_BROADCOM_PHY is not set -CONFIG_BROKEN_ON_SMP=y -# CONFIG_BSD_DISKLABEL is not set -# CONFIG_BSD_PROCESS_ACCT is not set -# CONFIG_BSD_PROCESS_ACCT_V3 is not set -# CONFIG_BT is not set -# CONFIG_BTRFS_ASSERT is not set -# CONFIG_BTRFS_DEBUG is not set -# CONFIG_BTRFS_FS is not set -# CONFIG_BTRFS_FS_POSIX_ACL is not set -# CONFIG_BTRFS_FS_REF_VERIFY is not set -# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set -# CONFIG_BT_AOSPEXT is not set -# CONFIG_BT_ATH3K is not set -# CONFIG_BT_BNEP is not set -CONFIG_BT_BNEP_MC_FILTER=y -CONFIG_BT_BNEP_PROTO_FILTER=y -# CONFIG_BT_BREDR is not set -# CONFIG_BT_CMTP is not set -# CONFIG_BT_FEATURE_DEBUG is not set -# CONFIG_BT_HCIBCM203X is not set -# CONFIG_BT_HCIBFUSB is not set -# CONFIG_BT_HCIBLUECARD is not set -# CONFIG_BT_HCIBPA10X is not set -# CONFIG_BT_HCIBT3C is not set -# CONFIG_BT_HCIBTSDIO is not set -# CONFIG_BT_HCIBTUSB is not set -# CONFIG_BT_HCIBTUSB_AUTOSUSPEND is not set -# CONFIG_BT_HCIBTUSB_MTK is not set -# CONFIG_BT_HCIBTUSB_RTL is not set -# CONFIG_BT_HCIDTL1 is not set -# CONFIG_BT_HCIUART is not set -# CONFIG_BT_HCIUART_3WIRE is not set -# CONFIG_BT_HCIUART_AG6XX is not set -# CONFIG_BT_HCIUART_ATH3K is not set -CONFIG_BT_HCIUART_BCSP=y -CONFIG_BT_HCIUART_H4=y -# CONFIG_BT_HCIUART_LL is not set -# CONFIG_BT_HCIUART_MRVL is not set -# CONFIG_BT_HCIUART_QCA is not set -# CONFIG_BT_HCIUART_RTL is not set -# CONFIG_BT_HCIVHCI is not set -# CONFIG_BT_HCIBTUSB_POLL_SYNC is not set -# CONFIG_BT_HCIBCM4377 is not set -# CONFIG_BT_HIDP is not set -# CONFIG_BT_HS is not set -# CONFIG_BT_LE is not set -# CONFIG_BT_LE_L2CAP_ECRED is not set -# CONFIG_BT_LEDS is not set -# CONFIG_BT_MRVL is not set -# CONFIG_BT_MSFTEXT is not set -# CONFIG_BT_MTKSDIO is not set -# CONFIG_BT_MTKUART is not set -# CONFIG_BT_RFCOMM is not set -CONFIG_BT_RFCOMM_TTY=y -# CONFIG_BT_SELFTEST is not set -# CONFIG_BT_VIRTIO is not set -CONFIG_BUG=y -# CONFIG_BUG_ON_DATA_CORRUPTION is not set -CONFIG_BUILDTIME_EXTABLE_SORT=y -CONFIG_BUILDTIME_TABLE_SORT=y -# CONFIG_BUILD_BIN2C is not set -CONFIG_BUILD_SALT="" -# CONFIG_C2PORT is not set -CONFIG_CACHE_L2X0_PMU=y -CONFIG_CACHESTAT_SYSCALL=y -# CONFIG_CADENCE_WATCHDOG is not set -# CONFIG_CAIF is not set -# CONFIG_CAN is not set -# CONFIG_CAN_BCM is not set -# CONFIG_CAN_CAN327 is not set -# CONFIG_CAN_CTUCANFD_PCI is not set -# CONFIG_CAN_CTUCANFD_PLATFORM is not set -# CONFIG_CAN_DEBUG_DEVICES is not set -# CONFIG_CAN_DEV is not set -# CONFIG_CAN_ESD_USB is not set -# CONFIG_CAN_ETAS_ES58X is not set -# CONFIG_CAN_GS_USB is not set -# CONFIG_CAN_GW is not set -# CONFIG_CAN_HI311X is not set -# CONFIG_CAN_IFI_CANFD is not set -# CONFIG_CAN_ISOTP is not set -# CONFIG_CAN_J1939 is not set -# CONFIG_CAN_KVASER_PCIEFD is not set -# CONFIG_CAN_MCBA_USB is not set -# CONFIG_CAN_MCP251XFD is not set -# CONFIG_CAN_M_CAN is not set -# CONFIG_CAN_NETLINK is not set -# CONFIG_CAN_PEAK_PCIEFD is not set -# CONFIG_CAN_RAW is not set -# CONFIG_CAN_RCAR is not set -# CONFIG_CAN_RCAR_CANFD is not set -# CONFIG_CAN_SLCAN is not set -# CONFIG_CAN_SUN4I is not set -# CONFIG_CAN_UCAN is not set -# CONFIG_CAN_VCAN is not set -# CONFIG_CAN_VXCAN is not set -# CONFIG_CAPI_AVM is not set -# CONFIG_CAPI_EICON is not set -# CONFIG_CAPI_TRACE is not set -CONFIG_CARDBUS=y -# CONFIG_CARDMAN_4000 is not set -# CONFIG_CARDMAN_4040 is not set -# CONFIG_CARL9170 is not set -# CONFIG_CASSINI is not set -# CONFIG_CAVIUM_CPT is not set -# CONFIG_CAVIUM_ERRATUM_22375 is not set -# CONFIG_CAVIUM_ERRATUM_23144 is not set -# CONFIG_CAVIUM_ERRATUM_23154 is not set -# CONFIG_CAVIUM_ERRATUM_27456 is not set -# CONFIG_CAVIUM_ERRATUM_30115 is not set -# CONFIG_CAVIUM_OCTEON_SOC is not set -# CONFIG_CAVIUM_PTP is not set -# CONFIG_CAVIUM_TX2_ERRATUM_219 is not set -# CONFIG_CB710_CORE is not set -# CONFIG_CC10001_ADC is not set -# CONFIG_CCS811 is not set -CONFIG_CC_CAN_LINK=y -CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y -# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set -# CONFIG_CDROM_PKTCDVD is not set -# CONFIG_CEPH_FS is not set -# CONFIG_CEPH_LIB is not set -# CONFIG_CFG80211 is not set -# CONFIG_CFG80211_CERTIFICATION_ONUS is not set -CONFIG_CFG80211_HEADERS=y -# CONFIG_CGROUPS is not set -# CONFIG_CGROUP_FAVOR_DYNMODS is not set -# CONFIG_CGROUP_MISC is not set -# CONFIG_CHARGER_ADP5061 is not set -# CONFIG_CHARGER_BD99954 is not set -# CONFIG_CHARGER_BQ2415X is not set -# CONFIG_CHARGER_BQ24190 is not set -# CONFIG_CHARGER_BQ24257 is not set -# CONFIG_CHARGER_BQ24735 is not set -# CONFIG_CHARGER_BQ2515X is not set -# CONFIG_CHARGER_BQ256XX is not set -# CONFIG_CHARGER_BQ25890 is not set -# CONFIG_CHARGER_BQ25980 is not set -# CONFIG_CHARGER_DETECTOR_MAX14656 is not set -# CONFIG_CHARGER_GPIO is not set -# CONFIG_CHARGER_ISP1704 is not set -# CONFIG_CHARGER_LP8727 is not set -# CONFIG_CHARGER_LT3651 is not set -# CONFIG_CHARGER_LTC3651 is not set -# CONFIG_CHARGER_LTC4162L is not set -# CONFIG_CHARGER_MANAGER is not set -# CONFIG_CHARGER_MAX77976 is not set -# CONFIG_CHARGER_MAX8903 is not set -# CONFIG_CHARGER_QCOM_SMBB is not set -# CONFIG_CHARGER_RK817 is not set -# CONFIG_CHARGER_RT9455 is not set -# CONFIG_CHARGER_SBS is not set -# CONFIG_CHARGER_SMB347 is not set -# CONFIG_CHARGER_TWL4030 is not set -# CONFIG_CHARGER_UCS1002 is not set -# CONFIG_CHASH_SELFTEST is not set -# CONFIG_CHASH_STATS is not set -# CONFIG_CHECKPOINT_RESTORE is not set -# CONFIG_CHELSIO_T1 is not set -# CONFIG_CHELSIO_T3 is not set -# CONFIG_CHELSIO_T4 is not set -# CONFIG_CHELSIO_T4VF is not set -# CONFIG_CHROME_PLATFORMS is not set -# CONFIG_CHR_DEV_OSST is not set -# CONFIG_CHR_DEV_SCH is not set -# CONFIG_CHR_DEV_SG is not set -# CONFIG_CHR_DEV_ST is not set -# CONFIG_CICADA_PHY is not set -# CONFIG_CIFS is not set -# CONFIG_CIFS_ACL is not set -CONFIG_CIFS_ALLOW_INSECURE_LEGACY=y -# CONFIG_CIFS_DEBUG is not set -# CONFIG_CIFS_DEBUG2 is not set -# CONFIG_CIFS_FSCACHE is not set -# CONFIG_CIFS_NFSD_EXPORT is not set -CONFIG_CIFS_POSIX=y -# CONFIG_CIFS_SMB2 is not set -# CONFIG_CIFS_STATS is not set -# CONFIG_CIFS_STATS2 is not set -# CONFIG_CIFS_SWN_UPCALL is not set -# CONFIG_CIFS_WEAK_PW_HASH is not set -CONFIG_CIFS_XATTR=y -# CONFIG_CIO_DAC is not set -# CONFIG_CLEANCACHE is not set -# CONFIG_CLKSRC_PISTACHIO is not set -# CONFIG_CLKSRC_VERSATILE is not set -# CONFIG_CLK_GFM_LPASS_SM8250 is not set -# CONFIG_CLK_HSDK is not set -# CONFIG_CLK_ICST is not set -# CONFIG_CLK_QORIQ is not set -# CONFIG_CLK_SP810 is not set -# CONFIG_CLOCK_THERMAL is not set -CONFIG_CLS_U32_MARK=y -# CONFIG_CLS_U32_PERF is not set -# CONFIG_CM32181 is not set -# CONFIG_CM3232 is not set -# CONFIG_CM3323 is not set -# CONFIG_CM3605 is not set -# CONFIG_CM36651 is not set -# CONFIG_CMA is not set -# CONFIG_CMA_SYSFS is not set -CONFIG_CMDLINE="" -# CONFIG_CMDLINE_BOOL is not set -# CONFIG_CMDLINE_EXTEND is not set -# CONFIG_CMDLINE_FORCE is not set -# CONFIG_CMDLINE_FROM_BOOTLOADER is not set -# CONFIG_CMDLINE_OVERRIDE is not set -# CONFIG_CMDLINE_PARTITION is not set -# CONFIG_CNIC is not set -# CONFIG_CODA_FS is not set -# CONFIG_CODE_PATCHING_SELFTEST is not set -# CONFIG_COMEDI is not set -# CONFIG_COMMON_CLK_AXI_CLKGEN is not set -# CONFIG_COMMON_CLK_BOSTON is not set -# CONFIG_COMMON_CLK_CDCE706 is not set -# CONFIG_COMMON_CLK_CDCE925 is not set -# CONFIG_COMMON_CLK_CS2000_CP is not set -# CONFIG_COMMON_CLK_FIXED_MMIO is not set -# CONFIG_COMMON_CLK_IPROC is not set -# CONFIG_COMMON_CLK_MAX9485 is not set -# CONFIG_COMMON_CLK_MT6765 is not set -# CONFIG_COMMON_CLK_MT8167 is not set -# CONFIG_COMMON_CLK_MT8167_AUDSYS is not set -# CONFIG_COMMON_CLK_MT8167_IMGSYS is not set -# CONFIG_COMMON_CLK_MT8167_MFGCFG is not set -# CONFIG_COMMON_CLK_MT8167_MMSYS is not set -# CONFIG_COMMON_CLK_MT8167_VDECSYS is not set -# CONFIG_COMMON_CLK_MT8192 is not set -# CONFIG_COMMON_CLK_NXP is not set -# CONFIG_COMMON_CLK_PIC32 is not set -# CONFIG_COMMON_CLK_PISTACHIO is not set -# CONFIG_COMMON_CLK_PWM is not set -# CONFIG_COMMON_CLK_PXA is not set -# CONFIG_COMMON_CLK_QCOM is not set -# CONFIG_COMMON_CLK_RS9_PCIE is not set -# CONFIG_COMMON_CLK_SI514 is not set -# CONFIG_COMMON_CLK_SI5341 is not set -# CONFIG_COMMON_CLK_SI5351 is not set -# CONFIG_COMMON_CLK_SI544 is not set -# CONFIG_COMMON_CLK_SI570 is not set -# CONFIG_COMMON_CLK_VC5 is not set -# CONFIG_COMMON_CLK_VC7 is not set -# CONFIG_COMMON_CLK_XGENE is not set -# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set -CONFIG_COMPACTION=y -# CONFIG_COMPAL_LAPTOP is not set -# CONFIG_COMPAT is not set -# CONFIG_COMPAT_ALIGNMENT_FIXUPS is not set -# CONFIG_COMPAT_BRK is not set -# CONFIG_COMPILE_TEST is not set -# CONFIG_CONFIGFS_FS is not set -# CONFIG_CONNECTOR is not set -CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 -CONFIG_CONSOLE_LOGLEVEL_QUIET=4 -CONFIG_CONSTRUCTORS=y -# CONFIG_CONTEXT_SWITCH_TRACER is not set -# CONFIG_COPS is not set -# CONFIG_CORDIC is not set -# CONFIG_COREDUMP is not set -# CONFIG_CORESIGHT is not set -# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set -# CONFIG_CORTINA_PHY is not set -# CONFIG_COUNTER is not set -# CONFIG_CPA_DEBUG is not set -# CONFIG_CPU_BIG_ENDIAN is not set -# CONFIG_CPU_BPREDICT_DISABLE is not set -# CONFIG_CPU_DCACHE_DISABLE is not set -# CONFIG_CPU_FREQ is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL is not set -# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set -# CONFIG_CPU_FREQ_GOV_SCHEDUTIL is not set -# CONFIG_CPU_FREQ_STAT_DETAILS is not set -# CONFIG_CPU_FREQ_THERMAL is not set -# CONFIG_CPU_HOTPLUG_STATE_CONTROL is not set -# CONFIG_CPU_IBPB_ENTRY is not set -# CONFIG_CPU_IBRS_ENTRY is not set -# CONFIG_CPU_ICACHE_DISABLE is not set -# CONFIG_CPU_ICACHE_MISMATCH_WORKAROUND is not set -# CONFIG_CPU_IDLE is not set -# CONFIG_CPU_IDLE_GOV_LADDER is not set -# CONFIG_CPU_IDLE_GOV_MENU is not set -# CONFIG_CPU_IDLE_GOV_TEO is not set -# CONFIG_CPU_IDLE_MULTIPLE_DRIVERS is not set -# CONFIG_CPU_ISOLATION is not set -# CONFIG_CPU_LITTLE_ENDIAN is not set -# CONFIG_CPU_NO_EFFICIENT_FFS is not set -CONFIG_CPU_SW_DOMAIN_PAN=y -# CONFIG_CPU_THERMAL is not set -# CONFIG_CRAMFS is not set -CONFIG_CRAMFS_BLOCKDEV=y -# CONFIG_CRAMFS_MTD is not set -# CONFIG_CRASH_DUMP is not set -# CONFIG_CRASH_HOTPLUG is not set -# CONFIG_CRC16 is not set -CONFIG_CRC32=y -# CONFIG_CRC32_BIT is not set -CONFIG_CRC32_SARWATE=y -# CONFIG_CRC32_SELFTEST is not set -# CONFIG_CRC32_SLICEBY4 is not set -# CONFIG_CRC32_SLICEBY8 is not set -# CONFIG_CRC4 is not set -# CONFIG_CRC64 is not set -# CONFIG_CRC64_ROCKSOFT is not set -# CONFIG_CRC7 is not set -# CONFIG_CRC8 is not set -# CONFIG_CRC_CCITT is not set -# CONFIG_CRC_ITU_T is not set -# CONFIG_CRC_T10DIF is not set -CONFIG_CROSS_COMPILE="" -# CONFIG_CROSS_MEMORY_ATTACH is not set -CONFIG_CRYPTO=y -# CONFIG_CRYPTO_842 is not set -CONFIG_CRYPTO_ACOMP2=y -# CONFIG_CRYPTO_ADIANTUM is not set -CONFIG_CRYPTO_AEAD=y -CONFIG_CRYPTO_AEAD2=y -# CONFIG_CRYPTO_AEGIS128 is not set -# CONFIG_CRYPTO_AEGIS128L is not set -# CONFIG_CRYPTO_AEGIS128L_AESNI_SSE2 is not set -# CONFIG_CRYPTO_AEGIS128_AESNI_SSE2 is not set -# CONFIG_CRYPTO_AEGIS256 is not set -# CONFIG_CRYPTO_AEGIS256_AESNI_SSE2 is not set -CONFIG_CRYPTO_AES=y -# CONFIG_CRYPTO_AES_586 is not set -# CONFIG_CRYPTO_AES_ARM is not set -# CONFIG_CRYPTO_AES_ARM64 is not set -# CONFIG_CRYPTO_AES_ARM64_BS is not set -# CONFIG_CRYPTO_AES_ARM64_CE is not set -# CONFIG_CRYPTO_AES_ARM64_CE_BLK is not set -# CONFIG_CRYPTO_AES_ARM64_CE_CCM is not set -# CONFIG_CRYPTO_AES_ARM64_NEON_BLK is not set -# CONFIG_CRYPTO_AES_ARM_BS is not set -# CONFIG_CRYPTO_AES_ARM_CE is not set -# CONFIG_CRYPTO_AES_NI_INTEL is not set -# CONFIG_CRYPTO_AES_TI is not set -CONFIG_CRYPTO_AKCIPHER=y -CONFIG_CRYPTO_AKCIPHER2=y -CONFIG_CRYPTO_ALGAPI=y -CONFIG_CRYPTO_ALGAPI2=y -# CONFIG_CRYPTO_ANSI_CPRNG is not set -# CONFIG_CRYPTO_ANUBIS is not set -# CONFIG_CRYPTO_ARC4 is not set -# CONFIG_CRYPTO_ARIA is not set -# CONFIG_CRYPTO_ARIA_AESNI_AVX_X86_64 is not set -# CONFIG_CRYPTO_AUTHENC is not set -# CONFIG_CRYPTO_BLAKE2B is not set -# CONFIG_CRYPTO_BLAKE2B_NEON is not set -# CONFIG_CRYPTO_BLAKE2S is not set -# CONFIG_CRYPTO_BLAKE2S_ARM is not set -# CONFIG_CRYPTO_BLAKE2S_X86 is not set -# CONFIG_CRYPTO_BLOWFISH is not set -# CONFIG_CRYPTO_CAMELLIA is not set -# CONFIG_CRYPTO_CAST5 is not set -# CONFIG_CRYPTO_CAST6 is not set -# CONFIG_CRYPTO_CBC is not set -CONFIG_CRYPTO_CCM=y -# CONFIG_CRYPTO_CFB is not set -# CONFIG_CRYPTO_CHACHA20 is not set -# CONFIG_CRYPTO_CHACHA20POLY1305 is not set -# CONFIG_CRYPTO_CHACHA20_NEON is not set -# CONFIG_CRYPTO_CHACHA20_X86_64 is not set -# CONFIG_CRYPTO_CHACHA_MIPS is not set -# CONFIG_CRYPTO_CMAC is not set -# CONFIG_CRYPTO_CRC32 is not set -# CONFIG_CRYPTO_CRC32C is not set -# CONFIG_CRYPTO_CRC32C_INTEL is not set -# CONFIG_CRYPTO_CRC32_ARM_CE is not set -# CONFIG_CRYPTO_CRCT10DIF is not set -# CONFIG_CRYPTO_CRCT10DIF_ARM64_CE is not set -# CONFIG_CRYPTO_CRCT10DIF_ARM_CE is not set -# CONFIG_CRYPTO_CRYPTD is not set -CONFIG_CRYPTO_CTR=y -# CONFIG_CRYPTO_CTS is not set -# CONFIG_CRYPTO_CURVE25519 is not set -# CONFIG_CRYPTO_CURVE25519_NEON is not set -# CONFIG_CRYPTO_CURVE25519_X86 is not set -# CONFIG_CRYPTO_DEFLATE is not set -# CONFIG_CRYPTO_DES is not set -# CONFIG_CRYPTO_DEV_AMLOGIC_GXL is not set -# CONFIG_CRYPTO_DEV_ATMEL_AES is not set -# CONFIG_CRYPTO_DEV_ATMEL_AUTHENC is not set -# CONFIG_CRYPTO_DEV_ATMEL_ECC is not set -# CONFIG_CRYPTO_DEV_ATMEL_SHA is not set -# CONFIG_CRYPTO_DEV_ATMEL_SHA204A is not set -# CONFIG_CRYPTO_DEV_ATMEL_TDES is not set -# CONFIG_CRYPTO_DEV_CAVIUM_ZIP is not set -# CONFIG_CRYPTO_DEV_CCP is not set -# CONFIG_CRYPTO_DEV_CCP_DEBUGFS is not set -# CONFIG_CRYPTO_DEV_CCREE is not set -# CONFIG_CRYPTO_DEV_FSL_CAAM is not set -# CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC is not set -# CONFIG_CRYPTO_DEV_HIFN_795X is not set -# CONFIG_CRYPTO_DEV_HISI_SEC is not set -# CONFIG_CRYPTO_DEV_HISI_ZIP is not set -# CONFIG_CRYPTO_DEV_IMGTEC_HASH is not set -# CONFIG_CRYPTO_DEV_MARVELL_CESA is not set -# CONFIG_CRYPTO_DEV_MEDIATEK is not set -# CONFIG_CRYPTO_DEV_MV_CESA is not set -# CONFIG_CRYPTO_DEV_MXC_SCC is not set -# CONFIG_CRYPTO_DEV_MXS_DCP is not set -# CONFIG_CRYPTO_DEV_NITROX_CNN55XX is not set -# CONFIG_CRYPTO_DEV_OCTEONTX_CPT is not set -# CONFIG_CRYPTO_DEV_QAT_4XXX is not set -# CONFIG_CRYPTO_DEV_QAT_C3XXX is not set -# CONFIG_CRYPTO_DEV_QAT_C3XXXVF is not set -# CONFIG_CRYPTO_DEV_QAT_C62X is not set -# CONFIG_CRYPTO_DEV_QAT_C62XVF is not set -# CONFIG_CRYPTO_DEV_QAT_DH895xCC is not set -# CONFIG_CRYPTO_DEV_QAT_DH895xCCVF is not set -# CONFIG_CRYPTO_DEV_QCE is not set -# CONFIG_CRYPTO_DEV_S5P is not set -# CONFIG_CRYPTO_DEV_SAFEXCEL is not set -# CONFIG_CRYPTO_DEV_SAHARA is not set -# CONFIG_CRYPTO_DEV_SP_PSP is not set -# CONFIG_CRYPTO_DEV_TALITOS is not set -# CONFIG_CRYPTO_DEV_VIRTIO is not set -# CONFIG_CRYPTO_DH is not set -# CONFIG_CRYPTO_DRBG_CTR is not set -# CONFIG_CRYPTO_DRBG_HASH is not set -# CONFIG_CRYPTO_DRBG_MENU is not set -# CONFIG_CRYPTO_ECB is not set -# CONFIG_CRYPTO_ECDH is not set -# CONFIG_CRYPTO_ECDSA is not set -# CONFIG_CRYPTO_ECHAINIV is not set -# CONFIG_CRYPTO_ECRDSA is not set -# CONFIG_CRYPTO_ESSIV is not set -# CONFIG_CRYPTO_FCRYPT is not set -# CONFIG_CRYPTO_FIPS is not set -CONFIG_CRYPTO_GCM=y -CONFIG_CRYPTO_GF128MUL=y -CONFIG_CRYPTO_GHASH=y -# CONFIG_CRYPTO_GHASH_ARM64_CE is not set -# CONFIG_CRYPTO_GHASH_ARM_CE is not set -# CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL is not set -CONFIG_CRYPTO_HASH=y -CONFIG_CRYPTO_HASH2=y -# CONFIG_CRYPTO_HCTR2 is not set -# CONFIG_CRYPTO_HMAC is not set -# CONFIG_CRYPTO_HW is not set -# CONFIG_CRYPTO_JITTERENTROPY is not set -# CONFIG_CRYPTO_KEYWRAP is not set -# CONFIG_CRYPTO_KHAZAD is not set -CONFIG_CRYPTO_KPP=y -CONFIG_CRYPTO_KPP2=y -CONFIG_CRYPTO_LIB_AES=y -CONFIG_CRYPTO_LIB_ARC4=y -# CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC is not set -# CONFIG_CRYPTO_LIB_CHACHA is not set -# CONFIG_CRYPTO_LIB_CHACHA20POLY1305 is not set -# CONFIG_CRYPTO_LIB_CURVE25519 is not set -# CONFIG_CRYPTO_LIB_POLY1305 is not set -CONFIG_CRYPTO_LIB_POLY1305_RSIZE=9 -# CONFIG_CRYPTO_LRW is not set -# CONFIG_CRYPTO_LZ4 is not set -# CONFIG_CRYPTO_LZ4HC is not set -# CONFIG_CRYPTO_LZO is not set -CONFIG_CRYPTO_MANAGER=y -CONFIG_CRYPTO_MANAGER2=y -CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y -# CONFIG_CRYPTO_MCRYPTD is not set -# CONFIG_CRYPTO_MD4 is not set -# CONFIG_CRYPTO_MD5 is not set -# CONFIG_CRYPTO_MICHAEL_MIC is not set -# CONFIG_CRYPTO_MORUS1280 is not set -# CONFIG_CRYPTO_MORUS1280_AVX2 is not set -# CONFIG_CRYPTO_MORUS1280_SSE2 is not set -# CONFIG_CRYPTO_MORUS640 is not set -# CONFIG_CRYPTO_MORUS640_SSE2 is not set -# CONFIG_CRYPTO_NHPOLY1305_NEON is not set -CONFIG_CRYPTO_NULL=y -CONFIG_CRYPTO_NULL2=y -# CONFIG_CRYPTO_OFB is not set -# CONFIG_CRYPTO_PCBC is not set -# CONFIG_CRYPTO_PCOMP is not set -# CONFIG_CRYPTO_PCOMP2 is not set -CONFIG_CRYPTO_PCRYPT=y -# CONFIG_CRYPTO_POLY1305 is not set -# CONFIG_CRYPTO_POLY1305_ARM is not set -# CONFIG_CRYPTO_POLY1305_MIPS is not set -# CONFIG_CRYPTO_POLY1305_NEON is not set -# CONFIG_CRYPTO_POLY1305_X86_64 is not set -# CONFIG_CRYPTO_POLYVAL_ARM64_CE is not set -# CONFIG_CRYPTO_POLYVAL_CLMUL_NI is not set -# CONFIG_CRYPTO_RMD160 is not set -# CONFIG_CRYPTO_RNG is not set -# CONFIG_CRYPTO_RSA is not set -# CONFIG_CRYPTO_SEED is not set -# CONFIG_CRYPTO_SEQIV is not set -# CONFIG_CRYPTO_SERPENT is not set -# CONFIG_CRYPTO_SHA1 is not set -# CONFIG_CRYPTO_SHA1_ARM is not set -# CONFIG_CRYPTO_SHA1_ARM64_CE is not set -# CONFIG_CRYPTO_SHA1_ARM_CE is not set -# CONFIG_CRYPTO_SHA1_ARM_NEON is not set -# CONFIG_CRYPTO_SHA256 is not set -# CONFIG_CRYPTO_SHA256_ARM is not set -# CONFIG_CRYPTO_SHA256_ARM64 is not set -# CONFIG_CRYPTO_SHA2_ARM64_CE is not set -# CONFIG_CRYPTO_SHA2_ARM_CE is not set -# CONFIG_CRYPTO_SHA3 is not set -# CONFIG_CRYPTO_SHA3_ARM64 is not set -# CONFIG_CRYPTO_SHA512 is not set -# CONFIG_CRYPTO_SHA512_ARM is not set -# CONFIG_CRYPTO_SHA512_ARM64 is not set -# CONFIG_CRYPTO_SHA512_ARM64_CE is not set -# CONFIG_CRYPTO_SIMD is not set -CONFIG_CRYPTO_SKCIPHER=y -CONFIG_CRYPTO_SKCIPHER2=y -# CONFIG_CRYPTO_SM2 is not set -# CONFIG_CRYPTO_SM3 is not set -# CONFIG_CRYPTO_SM3_ARM64_CE is not set -# CONFIG_CRYPTO_SM3_GENERIC is not set -# CONFIG_CRYPTO_SM3_NEON is not set -# CONFIG_CRYPTO_SM4 is not set -# CONFIG_CRYPTO_SM4_ARM64_CE is not set -# CONFIG_CRYPTO_SM4_ARM64_CE_BLK is not set -# CONFIG_CRYPTO_SM4_ARM64_NEON_BLK is not set -# CONFIG_CRYPTO_SM4_GENERIC is not set -# CONFIG_CRYPTO_SPECK is not set -# CONFIG_CRYPTO_STATS is not set -# CONFIG_CRYPTO_STREEBOG is not set -# CONFIG_CRYPTO_TEA is not set -# CONFIG_CRYPTO_TEST is not set -# CONFIG_CRYPTO_TWOFISH is not set -# CONFIG_CRYPTO_TWOFISH_586 is not set -# CONFIG_CRYPTO_TWOFISH_COMMON is not set -# CONFIG_CRYPTO_USER is not set -# CONFIG_CRYPTO_USER_API_AEAD is not set -# CONFIG_CRYPTO_USER_API_ENABLE_OBSOLETE is not set -# CONFIG_CRYPTO_USER_API_HASH is not set -# CONFIG_CRYPTO_USER_API_RNG is not set -# CONFIG_CRYPTO_USER_API_RNG_CAVP is not set -# CONFIG_CRYPTO_USER_API_SKCIPHER is not set -# CONFIG_CRYPTO_VMAC is not set -# CONFIG_CRYPTO_WP512 is not set -# CONFIG_CRYPTO_XCBC is not set -# CONFIG_CRYPTO_XTS is not set -# CONFIG_CRYPTO_XXHASH is not set -# CONFIG_CRYPTO_ZLIB is not set -# CONFIG_CRYPTO_ZSTD is not set -# CONFIG_CS5535_MFGPT is not set -# CONFIG_CS89x0 is not set -# CONFIG_CS89x0_PLATFORM is not set -# CONFIG_CSD_LOCK_WAIT_DEBUG is not set -# CONFIG_CUSE is not set -# CONFIG_CW1200 is not set -# CONFIG_CXD2880_SPI_DRV is not set -# CONFIG_CXL_AFU_DRIVER_OPS is not set -# CONFIG_CXL_BASE is not set -# CONFIG_CXL_BUS is not set -# CONFIG_CXL_EEH is not set -# CONFIG_CXL_KERNEL_API is not set -# CONFIG_CXL_LIB is not set -# CONFIG_CYPRESS_FIRMWARE is not set -# CONFIG_DA280 is not set -# CONFIG_DA311 is not set -# CONFIG_DAMON is not set -# CONFIG_DAVICOM_PHY is not set -# CONFIG_DAX is not set -# CONFIG_DCB is not set -# CONFIG_DDR is not set -# CONFIG_DEBUG_ALIGN_RODATA is not set -# CONFIG_DEBUG_ATOMIC_SLEEP is not set -# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set -# CONFIG_DEBUG_BUGVERBOSE is not set -# CONFIG_DEBUG_CREDENTIALS is not set -# CONFIG_DEBUG_DEVRES is not set -# CONFIG_DEBUG_DRIVER is not set -# CONFIG_DEBUG_EFI is not set -# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_32B is not set -# CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B is not set -# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set -CONFIG_DEBUG_FS=y -CONFIG_DEBUG_FS_ALLOW_ALL=y -# CONFIG_DEBUG_FS_ALLOW_NONE is not set -# CONFIG_DEBUG_FS_DISALLOW_MOUNT is not set -# CONFIG_DEBUG_GPIO is not set -# CONFIG_DEBUG_HIGHMEM is not set -# CONFIG_DEBUG_ICEDCC is not set -# CONFIG_DEBUG_INFO is not set -# CONFIG_DEBUG_INFO_BTF is not set -# CONFIG_DEBUG_INFO_COMPRESSED is not set -# CONFIG_DEBUG_INFO_DWARF4 is not set -# CONFIG_DEBUG_INFO_DWARF5 is not set -CONFIG_DEBUG_INFO_DWARF_TOOLCHAIN_DEFAULT=y -# CONFIG_DEBUG_INFO_NONE is not set -# CONFIG_DEBUG_INFO_REDUCED is not set -# CONFIG_DEBUG_INFO_SPLIT is not set -# CONFIG_DEBUG_IRQFLAGS is not set -CONFIG_DEBUG_KERNEL=y -# CONFIG_DEBUG_KMAP_LOCAL is not set -# CONFIG_DEBUG_KMEMLEAK is not set -# CONFIG_DEBUG_KOBJECT is not set -# CONFIG_DEBUG_KOBJECT_RELEASE is not set -# CONFIG_DEBUG_LIST is not set -# CONFIG_DEBUG_LL is not set -# CONFIG_DEBUG_LL_UART_8250 is not set -# CONFIG_DEBUG_LL_UART_PL01X is not set -# CONFIG_DEBUG_LOCKDEP is not set -# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set -# CONFIG_DEBUG_LOCK_ALLOC is not set -# CONFIG_DEBUG_MAPLE_TREE is not set -# CONFIG_DEBUG_MEMORY_INIT is not set -# CONFIG_DEBUG_MISC is not set -# CONFIG_DEBUG_MUTEXES is not set -# CONFIG_DEBUG_NET is not set -# CONFIG_DEBUG_NOTIFIERS is not set -# CONFIG_DEBUG_NX_TEST is not set -# CONFIG_DEBUG_OBJECTS is not set -# CONFIG_DEBUG_PAGEALLOC is not set -# CONFIG_DEBUG_PAGE_REF is not set -# CONFIG_DEBUG_PERF_USE_VMALLOC is not set -# CONFIG_DEBUG_PER_CPU_MAPS is not set -# CONFIG_DEBUG_PINCTRL is not set -# CONFIG_DEBUG_PI_LIST is not set -# CONFIG_DEBUG_PLIST is not set -# CONFIG_DEBUG_PREEMPT is not set -# CONFIG_DEBUG_RODATA_TEST is not set -# CONFIG_DEBUG_RSEQ is not set -# CONFIG_DEBUG_RT_MUTEXES is not set -# CONFIG_DEBUG_RWSEMS is not set -# CONFIG_DEBUG_SECTION_MISMATCH is not set -# CONFIG_DEBUG_SEMIHOSTING is not set -# CONFIG_DEBUG_SG is not set -# CONFIG_DEBUG_SHIRQ is not set -# CONFIG_DEBUG_SLAB is not set -# CONFIG_DEBUG_SPINLOCK is not set -# CONFIG_DEBUG_STACKOVERFLOW is not set -# CONFIG_DEBUG_STACK_USAGE is not set -# CONFIG_DEBUG_STRICT_USER_COPY_CHECKS is not set -# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set -# CONFIG_DEBUG_TIMEKEEPING is not set -# CONFIG_DEBUG_UART_8250_PALMCHIP is not set -# CONFIG_DEBUG_UART_8250_WORD is not set -# CONFIG_DEBUG_UART_BCM63XX is not set -# CONFIG_DEBUG_UART_FLOW_CONTROL is not set -# CONFIG_DEBUG_USER is not set -# CONFIG_DEBUG_VIRTUAL is not set -# CONFIG_DEBUG_VM is not set -# CONFIG_DEBUG_VM_PGFLAGS is not set -# CONFIG_DEBUG_VM_PGTABLE is not set -# CONFIG_DEBUG_VM_RB is not set -# CONFIG_DEBUG_VM_VMACACHE is not set -# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set -# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set -# CONFIG_DEBUG_WX is not set -# CONFIG_DEBUG_ZBOOT is not set -# CONFIG_DECNET is not set -# CONFIG_DEFAULT_CODEL is not set -# CONFIG_DEFAULT_BBR is not set -# CONFIG_DEFAULT_BBR1 is not set -# CONFIG_DEFAULT_BBR2 is not set -# CONFIG_DEFAULT_BIC is not set -# CONFIG_DEFAULT_HTCP is not set -# CONFIG_DEFAULT_HYBLA is not set -# CONFIG_DEFAULT_VEGAS is not set -# CONFIG_DEFAULT_VENO is not set -# CONFIG_DEFAULT_WESTWOOD is not set -# CONFIG_DEFAULT_DCTCP is not set -# CONFIG_DEFAULT_CDG is not set -CONFIG_DEFAULT_CUBIC=y -CONFIG_DEFAULT_DEADLINE=y -# CONFIG_DEFAULT_FQ is not set -CONFIG_DEFAULT_FQ_CODEL=y -# CONFIG_DEFAULT_FQ_PIE is not set -CONFIG_DEFAULT_HOSTNAME="(none)" -CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 -CONFIG_DEFAULT_INIT="" -CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 -CONFIG_DEFAULT_NET_SCH="fq_codel" -# CONFIG_DEFAULT_NOOP is not set -# CONFIG_DEFAULT_PFIFO_FAST is not set -# CONFIG_DEFAULT_RENO is not set -CONFIG_DEFAULT_SECURITY="" -CONFIG_DEFAULT_SECURITY_DAC=y -# CONFIG_DEFAULT_SECURITY_SELINUX is not set -# CONFIG_DEFAULT_SFQ is not set -CONFIG_DEFAULT_TCP_CONG="cubic" -CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" -# CONFIG_DEFERRED_STRUCT_PAGE_INIT is not set -# CONFIG_DELL_LAPTOP is not set -# CONFIG_DELL_RBTN is not set -# CONFIG_DELL_SMBIOS is not set -# CONFIG_DELL_SMO8800 is not set -# CONFIG_DEPRECATED_PARAM_STRUCT is not set -# CONFIG_DETECT_HUNG_TASK is not set -# CONFIG_DEVKMEM is not set -# CONFIG_DEVMEM is not set -CONFIG_DEVPORT=y -# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set -# CONFIG_DEVTMPFS is not set -# CONFIG_DEVTMPFS_MOUNT is not set -# CONFIG_DEVTMPFS_SAFE is not set -# CONFIG_DEV_DAX is not set -# CONFIG_DGAP is not set -# CONFIG_DGNC is not set -# CONFIG_DHT11 is not set -# CONFIG_DISCONTIGMEM_MANUAL is not set -# CONFIG_DISPLAY_CONNECTOR_ANALOG_TV is not set -# CONFIG_DISPLAY_CONNECTOR_DVI is not set -# CONFIG_DISPLAY_CONNECTOR_HDMI is not set -# CONFIG_DISPLAY_ENCODER_TFP410 is not set -# CONFIG_DISPLAY_ENCODER_TPD12S015 is not set -# CONFIG_DISPLAY_PANEL_DPI is not set -# CONFIG_DISPLAY_PANEL_LGPHILIPS_LB035Q02 is not set -# CONFIG_DISPLAY_PANEL_TPO_TD028TTEC1 is not set -# CONFIG_DISPLAY_PANEL_TPO_TD043MTEA1 is not set -# CONFIG_DL2K is not set -# CONFIG_DLHL60D is not set -# CONFIG_DLM is not set -# CONFIG_DM9000 is not set -# CONFIG_DM9051 is not set -# CONFIG_DMABUF_DEBUG is not set -# CONFIG_DMABUF_HEAPS is not set -# CONFIG_DMABUF_MOVE_NOTIFY is not set -# CONFIG_DMABUF_SELFTESTS is not set -# CONFIG_DMABUF_SYSFS_STATS is not set -# CONFIG_DMADEVICES is not set -# CONFIG_DMADEVICES_DEBUG is not set -# CONFIG_DMARD06 is not set -# CONFIG_DMARD09 is not set -# CONFIG_DMARD10 is not set -# CONFIG_DMASCC is not set -# CONFIG_DMATEST is not set -# CONFIG_DMA_API_DEBUG is not set -CONFIG_DMA_COHERENT_POOL=y -CONFIG_DMA_DECLARE_COHERENT=y -# CONFIG_DMA_ENGINE is not set -# CONFIG_DMA_FENCE_TRACE is not set -# CONFIG_DMA_JZ4780 is not set -# CONFIG_DMA_MAP_BENCHMARK is not set -CONFIG_DMA_NONCOHERENT_MMAP=y -# CONFIG_DMA_NOOP_OPS is not set -# CONFIG_DMA_PERNUMA_CMA is not set -# CONFIG_DMAPOOL_TEST is not set -# CONFIG_DMA_RESTRICTED_POOL is not set -# CONFIG_DMA_SHARED_BUFFER is not set -# CONFIG_DMA_VIRT_OPS is not set -# CONFIG_DM_CACHE is not set -# CONFIG_DM_CLONE is not set -# CONFIG_DM_DEBUG is not set -# CONFIG_DM_DELAY is not set -# CONFIG_DM_DUST is not set -# CONFIG_DM_EBS is not set -# CONFIG_DM_ERA is not set -# CONFIG_DM_FLAKEY is not set -# CONFIG_DM_INTEGRITY is not set -# CONFIG_DM_LOG_USERSPACE is not set -# CONFIG_DM_LOG_WRITES is not set -# CONFIG_DM_MQ_DEFAULT is not set -# CONFIG_DM_MULTIPATH is not set -# CONFIG_DM_RAID is not set -# CONFIG_DM_SWITCH is not set -# CONFIG_DM_THIN_PROVISIONING is not set -# CONFIG_DM_UEVENT is not set -# CONFIG_DM_UNSTRIPED is not set -# CONFIG_DM_VERITY is not set -# CONFIG_DM_WRITECACHE is not set -# CONFIG_DM_ZERO is not set -# CONFIG_DNET is not set -# CONFIG_DNOTIFY is not set -# CONFIG_DNS_RESOLVER is not set -CONFIG_DOUBLEFAULT=y -# CONFIG_DP83640_PHY is not set -# CONFIG_DP83822_PHY is not set -# CONFIG_DP83848_PHY is not set -# CONFIG_DP83867_PHY is not set -# CONFIG_DP83869_PHY is not set -# CONFIG_DP83TC811_PHY is not set -# CONFIG_DP83TD510_PHY is not set -# CONFIG_DPOT_DAC is not set -# CONFIG_DPS310 is not set -CONFIG_DQL=y -# CONFIG_DRAGONRISE_FF is not set -# CONFIG_DRM is not set -# CONFIG_DRM_AMDGPU is not set -# CONFIG_DRM_AMDGPU_CIK is not set -# CONFIG_DRM_AMDGPU_GART_DEBUGFS is not set -# CONFIG_DRM_AMDGPU_SI is not set -# CONFIG_DRM_AMDGPU_USERPTR is not set -# CONFIG_DRM_AMD_ACP is not set -# CONFIG_DRM_AMD_DC_DCN2_0 is not set -# CONFIG_DRM_AMD_DC_DCN3_0 is not set -# CONFIG_DRM_AMD_DC_HDCP is not set -# CONFIG_DRM_AMD_DC_SI is not set -# CONFIG_DRM_AMD_SECURE_DISPLAY is not set -# CONFIG_DRM_ANALOGIX_ANX6345 is not set -# CONFIG_DRM_ANALOGIX_ANX7625 is not set -# CONFIG_DRM_ANALOGIX_ANX78XX is not set -# CONFIG_DRM_ARCPGU is not set -# CONFIG_DRM_ARMADA is not set -# CONFIG_DRM_AST is not set -# CONFIG_DRM_ATMEL_HLCDC is not set -# CONFIG_DRM_BOCHS is not set -# CONFIG_DRM_CDNS_DSI is not set -# CONFIG_DRM_CDNS_MHDP8546 is not set -# CONFIG_DRM_CHIPONE_ICN6211 is not set -# CONFIG_DRM_CHRONTEL_CH7033 is not set -# CONFIG_DRM_CIRRUS_QEMU is not set -# CONFIG_DRM_DEBUG_DP_MST_TOPOLOGY_REFS is not set -# CONFIG_DRM_DEBUG_MM is not set -# CONFIG_DRM_DEBUG_MODESET_LOCK is not set -# CONFIG_DRM_DEBUG_SELFTEST is not set -# CONFIG_DRM_DISPLAY_CONNECTOR is not set -# CONFIG_DRM_DP_AUX_CHARDEV is not set -# CONFIG_DRM_DP_CEC is not set -# CONFIG_DRM_DUMB_VGA_DAC is not set -# CONFIG_DRM_DW_HDMI_CEC is not set -# CONFIG_DRM_ETNAVIV is not set -# CONFIG_DRM_EXYNOS is not set -# CONFIG_DRM_FBDEV_EMULATION is not set -# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set -# CONFIG_DRM_FSL_DCU is not set -# CONFIG_DRM_GM12U320 is not set -# CONFIG_DRM_GMA500 is not set -# CONFIG_DRM_GUD is not set -# CONFIG_DRM_HDLCD is not set -# CONFIG_DRM_HISI_HIBMC is not set -# CONFIG_DRM_HISI_KIRIN is not set -# CONFIG_DRM_I2C_ADV7511 is not set -# CONFIG_DRM_I2C_CH7006 is not set -# CONFIG_DRM_I2C_NXP_TDA9950 is not set -# CONFIG_DRM_I2C_NXP_TDA998X is not set -# CONFIG_DRM_I2C_SIL164 is not set -# CONFIG_DRM_I915 is not set -CONFIG_DRM_I915_REQUEST_TIMEOUT=20000 -# CONFIG_DRM_IMX_LCDIF is not set -# CONFIG_DRM_ITE_IT6505 is not set -# CONFIG_DRM_ITE_IT66121 is not set -# CONFIG_DRM_KOMEDA is not set -# CONFIG_DRM_LEGACY is not set -# CONFIG_DRM_LIB_RANDOM is not set -# CONFIG_DRM_LIMA is not set -# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set -# CONFIG_DRM_LOGICVC is not set -# CONFIG_DRM_LONTIUM_LT8912B is not set -# CONFIG_DRM_LONTIUM_LT9211 is not set -# CONFIG_DRM_LONTIUM_LT9611 is not set -# CONFIG_DRM_LONTIUM_LT9611UXC is not set -# CONFIG_DRM_LVDS_CODEC is not set -# CONFIG_DRM_LVDS_ENCODER is not set -# CONFIG_DRM_MALI_DISPLAY is not set -# CONFIG_DRM_MCDE is not set -# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set -# CONFIG_DRM_MGAG200 is not set -# CONFIG_DRM_MXSFB is not set -# CONFIG_DRM_NOUVEAU is not set -# CONFIG_DRM_NWL_MIPI_DSI is not set -# CONFIG_DRM_NXP_PTN3460 is not set -# CONFIG_DRM_OMAP is not set -# CONFIG_DRM_PANEL_ABT_Y030XX067A is not set -# CONFIG_DRM_PANEL_ARM_VERSATILE is not set -# CONFIG_DRM_PANEL_ASUS_Z00T_TM5P5_NT35596 is not set -# CONFIG_DRM_PANEL_BOE_BF060Y8M_AJ0 is not set -# CONFIG_DRM_PANEL_BOE_HIMAX8279D is not set -# CONFIG_DRM_PANEL_BOE_TV101WUM_NL6 is not set -# CONFIG_DRM_PANEL_DSI_CM is not set -# CONFIG_DRM_PANEL_EBBG_FT8719 is not set -# CONFIG_DRM_PANEL_EDP is not set -# CONFIG_DRM_PANEL_ELIDA_KD35T133 is not set -# CONFIG_DRM_PANEL_FEIXIN_K101_IM2BA02 is not set -# CONFIG_DRM_PANEL_FEIYANG_FY07024DI26A30D is not set -# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set -# CONFIG_DRM_PANEL_ILITEK_ILI9341 is not set -# CONFIG_DRM_PANEL_ILITEK_ILI9806E is not set -# CONFIG_DRM_PANEL_ILITEK_ILI9881C is not set -# CONFIG_DRM_PANEL_INNOLUX_EJ030NA is not set -# CONFIG_DRM_PANEL_INNOLUX_P079ZCA is not set -# CONFIG_DRM_PANEL_JDI_LT070ME05000 is not set -# CONFIG_DRM_PANEL_JDI_R63452 is not set -# CONFIG_DRM_PANEL_KHADAS_TS050 is not set -# CONFIG_DRM_PANEL_KINGDISPLAY_KD097D04 is not set -# CONFIG_DRM_PANEL_LEADTEK_LTK050H3146W is not set -# CONFIG_DRM_PANEL_LEADTEK_LTK500HD1829 is not set -# CONFIG_DRM_PANEL_LG_LB035Q02 is not set -# CONFIG_DRM_PANEL_LG_LG4573 is not set -# CONFIG_DRM_PANEL_LVDS is not set -# CONFIG_DRM_PANEL_MANTIX_MLAF057WE51 is not set -# CONFIG_DRM_PANEL_MIPI_DBI is not set -# CONFIG_DRM_PANEL_NEC_NL8048HL11 is not set -# CONFIG_DRM_PANEL_NEWVISION_NV3052C is not set -# CONFIG_DRM_PANEL_NOVATEK_NT35510 is not set -# CONFIG_DRM_PANEL_NOVATEK_NT35560 is not set -# CONFIG_DRM_PANEL_NOVATEK_NT35950 is not set -# CONFIG_DRM_PANEL_NOVATEK_NT36672A is not set -# CONFIG_DRM_PANEL_NOVATEK_NT39016 is not set -# CONFIG_DRM_PANEL_OLIMEX_LCD_OLINUXINO is not set -# CONFIG_DRM_PANEL_ORISETECH_OTM8009A is not set -# CONFIG_DRM_PANEL_OSD_OSD101T2587_53TS is not set -# CONFIG_DRM_PANEL_PANASONIC_VVX10F034N00 is not set -# CONFIG_DRM_PANEL_RASPBERRYPI_TOUCHSCREEN is not set -# CONFIG_DRM_PANEL_RAYDIUM_RM67191 is not set -# CONFIG_DRM_PANEL_RAYDIUM_RM68200 is not set -# CONFIG_DRM_PANEL_ROCKTECH_JH057N00900 is not set -# CONFIG_DRM_PANEL_RONBO_RB070D30 is not set -# CONFIG_DRM_PANEL_SAMSUNG_ATNA33XC20 is not set -# CONFIG_DRM_PANEL_SAMSUNG_DB7430 is not set -# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6D16D0 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6D27A1 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E3HA2 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E63J0X03 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E63M0 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E88A0_AMS452EF01 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set -# CONFIG_DRM_PANEL_SAMSUNG_SOFEF00 is not set -# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set -# CONFIG_DRM_PANEL_SHARP_LQ101R1SX01 is not set -# CONFIG_DRM_PANEL_SHARP_LS037V7DW01 is not set -# CONFIG_DRM_PANEL_SHARP_LS043T1LE01 is not set -# CONFIG_DRM_PANEL_SHARP_LS060T1SX01 is not set -# CONFIG_DRM_PANEL_SIMPLE is not set -# CONFIG_DRM_PANEL_SITRONIX_ST7701 is not set -# CONFIG_DRM_PANEL_SITRONIX_ST7703 is not set -# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set -# CONFIG_DRM_PANEL_SONY_ACX424AKP is not set -# CONFIG_DRM_PANEL_SONY_ACX565AKM is not set -# CONFIG_DRM_PANEL_SONY_TULIP_TRULY_NT35521 is not set -# CONFIG_DRM_PANEL_TDO_TL070WSH30 is not set -# CONFIG_DRM_PANEL_TPO_TD028TTEC1 is not set -# CONFIG_DRM_PANEL_TPO_TD043MTEA1 is not set -# CONFIG_DRM_PANEL_TPO_TPG110 is not set -# CONFIG_DRM_PANEL_TPO_Y17P is not set -# CONFIG_DRM_PANEL_TRULY_NT35597_WQXGA is not set -# CONFIG_DRM_PANEL_VISIONOX_RM69299 is not set -# CONFIG_DRM_PANEL_WAVESHARE_TOUCHSCREEN is not set -# CONFIG_DRM_PANEL_WIDECHIPS_WS2401 is not set -# CONFIG_DRM_PANEL_XINPENG_XPP055C272 is not set -# CONFIG_DRM_PANFROST is not set -# CONFIG_DRM_PARADE_PS8622 is not set -# CONFIG_DRM_PARADE_PS8640 is not set -# CONFIG_DRM_PL111 is not set -# CONFIG_DRM_QXL is not set -# CONFIG_DRM_RADEON is not set -# CONFIG_DRM_RADEON_USERPTR is not set -# CONFIG_DRM_RCAR_DW_HDMI is not set -# CONFIG_DRM_RCAR_LVDS is not set -# CONFIG_DRM_RCAR_USE_LVDS is not set -# CONFIG_DRM_RCAR_USE_MIPI_DSI is not set -# CONFIG_DRM_ROCKCHIP is not set -# CONFIG_DRM_SII902X is not set -# CONFIG_DRM_SII9234 is not set -# CONFIG_DRM_SIL_SII8620 is not set -# CONFIG_DRM_SIMPLEDRM is not set -# CONFIG_DRM_SIMPLE_BRIDGE is not set -# CONFIG_DRM_SSD130X is not set -# CONFIG_DRM_STI is not set -# CONFIG_DRM_STM is not set -# CONFIG_DRM_SUN4I is not set -# CONFIG_DRM_THINE_THC63LVD1024 is not set -# CONFIG_DRM_TIDSS is not set -# CONFIG_DRM_TILCDC is not set -# CONFIG_DRM_TINYDRM is not set -# CONFIG_DRM_TI_DLPC3433 is not set -# CONFIG_DRM_TI_SN65DSI83 is not set -# CONFIG_DRM_TI_SN65DSI86 is not set -# CONFIG_DRM_TI_TFP410 is not set -# CONFIG_DRM_TI_TPD12S015 is not set -# CONFIG_DRM_TOSHIBA_TC358762 is not set -# CONFIG_DRM_TOSHIBA_TC358764 is not set -# CONFIG_DRM_TOSHIBA_TC358767 is not set -# CONFIG_DRM_TOSHIBA_TC358768 is not set -# CONFIG_DRM_TOSHIBA_TC358775 is not set -# CONFIG_DRM_TVE200 is not set -# CONFIG_DRM_UDL is not set -# CONFIG_DRM_VBOXVIDEO is not set -# CONFIG_DRM_VC4_HDMI_CEC is not set -# CONFIG_DRM_VGEM is not set -# CONFIG_DRM_VIRTIO_GPU is not set -# CONFIG_DRM_VKMS is not set -# CONFIG_DRM_VMWGFX is not set -# CONFIG_DRM_XEN is not set -# CONFIG_DRM_XEN_FRONTEND is not set -# CONFIG_DS1682 is not set -# CONFIG_DS1803 is not set -# CONFIG_DS4424 is not set -# CONFIG_DST_CACHE is not set -# CONFIG_DTLK is not set -# CONFIG_DUMMY is not set -CONFIG_DUMMY_CONSOLE_COLUMNS=80 -CONFIG_DUMMY_CONSOLE_ROWS=25 -# CONFIG_DUMMY_IRQ is not set -# CONFIG_DVB_A8293 is not set -# CONFIG_DVB_AF9013 is not set -# CONFIG_DVB_AF9033 is not set -# CONFIG_DVB_AS102 is not set -# CONFIG_DVB_ASCOT2E is not set -# CONFIG_DVB_ATBM8830 is not set -# CONFIG_DVB_AU8522_DTV is not set -# CONFIG_DVB_AU8522_V4L is not set -# CONFIG_DVB_B2C2_FLEXCOP_USB is not set -# CONFIG_DVB_BCM3510 is not set -# CONFIG_DVB_CORE is not set -# CONFIG_DVB_CX22700 is not set -# CONFIG_DVB_CX22702 is not set -# CONFIG_DVB_CX24110 is not set -# CONFIG_DVB_CX24116 is not set -# CONFIG_DVB_CX24117 is not set -# CONFIG_DVB_CX24120 is not set -# CONFIG_DVB_CX24123 is not set -# CONFIG_DVB_CXD2099 is not set -# CONFIG_DVB_CXD2820R is not set -# CONFIG_DVB_CXD2841ER is not set -# CONFIG_DVB_CXD2880 is not set -# CONFIG_DVB_DEMUX_SECTION_LOSS_LOG is not set -# CONFIG_DVB_DIB3000MB is not set -# CONFIG_DVB_DIB3000MC is not set -# CONFIG_DVB_DIB7000M is not set -# CONFIG_DVB_DIB7000P is not set -# CONFIG_DVB_DIB8000 is not set -# CONFIG_DVB_DIB9000 is not set -# CONFIG_DVB_DRX39XYJ is not set -# CONFIG_DVB_DRXD is not set -# CONFIG_DVB_DRXK is not set -# CONFIG_DVB_DS3000 is not set -# CONFIG_DVB_DUMMY_FE is not set -# CONFIG_DVB_DYNAMIC_MINORS is not set -# CONFIG_DVB_EC100 is not set -# CONFIG_DVB_FIREDTV is not set -# CONFIG_DVB_HELENE is not set -# CONFIG_DVB_HORUS3A is not set -# CONFIG_DVB_ISL6405 is not set -# CONFIG_DVB_ISL6421 is not set -# CONFIG_DVB_ISL6423 is not set -# CONFIG_DVB_IX2505V is not set -# CONFIG_DVB_L64781 is not set -# CONFIG_DVB_LG2160 is not set -# CONFIG_DVB_LGDT3305 is not set -# CONFIG_DVB_LGDT3306A is not set -# CONFIG_DVB_LGDT330X is not set -# CONFIG_DVB_LGS8GL5 is not set -# CONFIG_DVB_LGS8GXX is not set -# CONFIG_DVB_LNBH25 is not set -# CONFIG_DVB_LNBH29 is not set -# CONFIG_DVB_LNBP21 is not set -# CONFIG_DVB_LNBP22 is not set -# CONFIG_DVB_M88DS3103 is not set -# CONFIG_DVB_M88RS2000 is not set -CONFIG_DVB_MAX_ADAPTERS=16 -# CONFIG_DVB_MB86A16 is not set -# CONFIG_DVB_MB86A20S is not set -# CONFIG_DVB_MMAP is not set -# CONFIG_DVB_MN88443X is not set -# CONFIG_DVB_MN88472 is not set -# CONFIG_DVB_MN88473 is not set -# CONFIG_DVB_MT312 is not set -# CONFIG_DVB_MT352 is not set -# CONFIG_DVB_MXL5XX is not set -# CONFIG_DVB_MXL692 is not set -# CONFIG_DVB_NET is not set -# CONFIG_DVB_NXT200X is not set -# CONFIG_DVB_NXT6000 is not set -# CONFIG_DVB_OR51132 is not set -# CONFIG_DVB_OR51211 is not set -# CONFIG_DVB_PLATFORM_DRIVERS is not set -# CONFIG_DVB_PLL is not set -# CONFIG_DVB_RTL2830 is not set -# CONFIG_DVB_RTL2832 is not set -# CONFIG_DVB_RTL2832_SDR is not set -# CONFIG_DVB_S5H1409 is not set -# CONFIG_DVB_S5H1411 is not set -# CONFIG_DVB_S5H1420 is not set -# CONFIG_DVB_S5H1432 is not set -# CONFIG_DVB_S921 is not set -# CONFIG_DVB_SI2165 is not set -# CONFIG_DVB_SI2168 is not set -# CONFIG_DVB_SI21XX is not set -# CONFIG_DVB_SP2 is not set -# CONFIG_DVB_SP8870 is not set -# CONFIG_DVB_SP887X is not set -# CONFIG_DVB_STB0899 is not set -# CONFIG_DVB_STB6000 is not set -# CONFIG_DVB_STB6100 is not set -# CONFIG_DVB_STV0288 is not set -# CONFIG_DVB_STV0297 is not set -# CONFIG_DVB_STV0299 is not set -# CONFIG_DVB_STV0367 is not set -# CONFIG_DVB_STV0900 is not set -# CONFIG_DVB_STV090x is not set -# CONFIG_DVB_STV0910 is not set -# CONFIG_DVB_STV6110 is not set -# CONFIG_DVB_STV6110x is not set -# CONFIG_DVB_STV6111 is not set -# CONFIG_DVB_TC90522 is not set -# CONFIG_DVB_TDA10021 is not set -# CONFIG_DVB_TDA10023 is not set -# CONFIG_DVB_TDA10048 is not set -# CONFIG_DVB_TDA1004X is not set -# CONFIG_DVB_TDA10071 is not set -# CONFIG_DVB_TDA10086 is not set -# CONFIG_DVB_TDA18271C2DD is not set -# CONFIG_DVB_TDA665x is not set -# CONFIG_DVB_TDA8083 is not set -# CONFIG_DVB_TDA8261 is not set -# CONFIG_DVB_TDA826X is not set -# CONFIG_DVB_TEST_DRIVERS is not set -# CONFIG_DVB_TS2020 is not set -# CONFIG_DVB_TTUSB_BUDGET is not set -# CONFIG_DVB_TTUSB_DEC is not set -# CONFIG_DVB_TUA6100 is not set -# CONFIG_DVB_TUNER_CX24113 is not set -# CONFIG_DVB_TUNER_DIB0070 is not set -# CONFIG_DVB_TUNER_DIB0090 is not set -# CONFIG_DVB_TUNER_ITD1000 is not set -# CONFIG_DVB_ULE_DEBUG is not set -# CONFIG_DVB_USB is not set -# CONFIG_DVB_USB_V2 is not set -# CONFIG_DVB_VES1820 is not set -# CONFIG_DVB_VES1X93 is not set -# CONFIG_DVB_ZD1301_DEMOD is not set -# CONFIG_DVB_ZL10036 is not set -# CONFIG_DVB_ZL10039 is not set -# CONFIG_DVB_ZL10353 is not set -# CONFIG_DWC_XLGMAC is not set -# CONFIG_DWMAC_DWC_QOS_ETH is not set -# CONFIG_DWMAC_INTEL_PLAT is not set -# CONFIG_DWMAC_IPQ806X is not set -# CONFIG_DWMAC_LOONGSON is not set -# CONFIG_DWMAC_LPC18XX is not set -# CONFIG_DWMAC_MESON is not set -# CONFIG_DWMAC_ROCKCHIP is not set -# CONFIG_DWMAC_SOCFPGA is not set -# CONFIG_DWMAC_STI is not set -# CONFIG_DW_AXI_DMAC is not set -# CONFIG_DW_DMAC is not set -# CONFIG_DW_DMAC_PCI is not set -# CONFIG_DW_EDMA is not set -# CONFIG_DW_EDMA_PCIE is not set -# CONFIG_DW_WATCHDOG is not set -# CONFIG_DW_XDATA_PCIE is not set -# CONFIG_DYNAMIC_DEBUG is not set -# CONFIG_DYNAMIC_DEBUG_CORE is not set -# CONFIG_E100 is not set -# CONFIG_E1000 is not set -# CONFIG_E1000E is not set -# CONFIG_E1000E_HWTS is not set -# CONFIG_EARLY_PRINTK_8250 is not set -# CONFIG_EARLY_PRINTK_USB_XDBC is not set -# CONFIG_EBC_C384_WDT is not set -# CONFIG_ECHO is not set -# CONFIG_ECRYPT_FS is not set -# CONFIG_EDAC is not set -# CONFIG_EEEPC_LAPTOP is not set -# CONFIG_EEPROM_93CX6 is not set -# CONFIG_EEPROM_93XX46 is not set -# CONFIG_EEPROM_AT24 is not set -# CONFIG_EEPROM_AT25 is not set -# CONFIG_EEPROM_DIGSY_MTC_CFG is not set -# CONFIG_EEPROM_EE1004 is not set -# CONFIG_EEPROM_IDT_89HPESX is not set -# CONFIG_EEPROM_LEGACY is not set -# CONFIG_EEPROM_MAX6875 is not set -# CONFIG_EFI is not set -# CONFIG_EFI_COCO_SECRET is not set -# CONFIG_EFI_DISABLE_RUNTIME is not set -# CONFIG_EFI_DXE_MEM_ATTRIBUTES is not set -CONFIG_EFI_PARTITION=y -# CONFIG_EFI_SECRET is not set -# CONFIG_EFI_VARS_PSTORE is not set -# CONFIG_EFS_FS is not set -CONFIG_ELFCORE=y -# CONFIG_ELF_CORE is not set -# CONFIG_EMAC_ROCKCHIP is not set -CONFIG_EMBEDDED=y -# CONFIG_EM_TIMER_STI is not set -CONFIG_ENABLE_WARN_DEPRECATED=y -# CONFIG_ENA_ETHERNET is not set -# CONFIG_ENC28J60 is not set -# CONFIG_ENCLOSURE_SERVICES is not set -# CONFIG_ENCRYPTED_KEYS is not set -# CONFIG_ENCX24J600 is not set -# CONFIG_ENERGY_MODEL is not set -# CONFIG_ENIC is not set -# CONFIG_ENVELOPE_DETECTOR is not set -# CONFIG_EPAPR_PARAVIRT is not set -# CONFIG_EPIC100 is not set -CONFIG_EPOLL=y -# CONFIG_EQUALIZER is not set -# CONFIG_EROFS_FS is not set -# CONFIG_ET131X is not set -CONFIG_ETHERNET=y -# CONFIG_ETHOC is not set -CONFIG_ETHTOOL_NETLINK=y -CONFIG_EVENTFD=y -# CONFIG_EVM is not set -# CONFIG_EXAR_WDT is not set -# CONFIG_EXFAT_FS is not set -CONFIG_EXPERT=y -CONFIG_EXPORTFS=y -# CONFIG_EXPORTFS_BLOCK_OPS is not set -# CONFIG_EXT2_FS is not set -CONFIG_EXT2_FS_XATTR=y -# CONFIG_EXT3_FS is not set -# CONFIG_EXT4_DEBUG is not set -# CONFIG_EXT4_ENCRYPTION is not set -# CONFIG_EXT4_FS is not set -# CONFIG_EXT4_FS_POSIX_ACL is not set -# CONFIG_EXT4_FS_SECURITY is not set -CONFIG_EXT4_USE_FOR_EXT2=y -# CONFIG_EXTCON is not set -# CONFIG_EXTCON_ADC_JACK is not set -# CONFIG_EXTCON_ARIZONA is not set -# CONFIG_EXTCON_AXP288 is not set -# CONFIG_EXTCON_FSA9480 is not set -# CONFIG_EXTCON_GPIO is not set -# CONFIG_EXTCON_INTEL_INT3496 is not set -# CONFIG_EXTCON_MAX3355 is not set -# CONFIG_EXTCON_PTN5150 is not set -# CONFIG_EXTCON_QCOM_SPMI_MISC is not set -# CONFIG_EXTCON_RT8973A is not set -# CONFIG_EXTCON_SM5502 is not set -# CONFIG_EXTCON_USBC_TUSB320 is not set -# CONFIG_EXTCON_USB_GPIO is not set -CONFIG_EXTRA_FIRMWARE="" -CONFIG_EXTRA_TARGETS="" -# CONFIG_EXYNOS_ADC is not set -# CONFIG_EXYNOS_VIDEO is not set -# CONFIG_EZCHIP_NPS_MANAGEMENT_ENET is not set -# CONFIG_EZX_PCAP is not set -# CONFIG_F2FS_CHECK_FS is not set -# CONFIG_F2FS_FAULT_INJECTION is not set -# CONFIG_F2FS_FS is not set -# CONFIG_F2FS_FS_COMPRESSION is not set -# CONFIG_F2FS_FS_ENCRYPTION is not set -# CONFIG_F2FS_FS_POSIX_ACL is not set -# CONFIG_F2FS_FS_SECURITY is not set -CONFIG_F2FS_FS_XATTR=y -# CONFIG_F2FS_IOSTAT is not set -# CONFIG_F2FS_IO_TRACE is not set -CONFIG_F2FS_STAT_FS=y -# CONFIG_F2FS_UNFAIR_RWSEM is not set -# CONFIG_FAILOVER is not set -# CONFIG_FAIR_GROUP_SCHED is not set -# CONFIG_FANOTIFY is not set -# CONFIG_FANOTIFY_ACCESS_PERMISSIONS is not set -CONFIG_FAT_DEFAULT_CODEPAGE=437 -CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" -# CONFIG_FAT_DEFAULT_UTF8 is not set -# CONFIG_FAT_FS is not set -# CONFIG_FAULT_INJECTION is not set -# CONFIG_FB is not set -# CONFIG_FB_3DFX is not set -# CONFIG_FB_ARC is not set -# CONFIG_FB_ARK is not set -# CONFIG_FB_ARMCLCD is not set -# CONFIG_FB_ASILIANT is not set -# CONFIG_FB_ATMEL is not set -# CONFIG_FB_ATY is not set -# CONFIG_FB_ATY128 is not set -# CONFIG_FB_AUO_K190X is not set -# CONFIG_FB_BACKLIGHT is not set -# CONFIG_FB_BIG_ENDIAN is not set -# CONFIG_FB_BOOT_VESA_SUPPORT is not set -# CONFIG_FB_BOTH_ENDIAN is not set -# CONFIG_FB_BROADSHEET is not set -# CONFIG_FB_CARMINE is not set -# CONFIG_FB_CFB_COPYAREA is not set -# CONFIG_FB_CFB_FILLRECT is not set -# CONFIG_FB_CFB_IMAGEBLIT is not set -# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set -# CONFIG_FB_CIRRUS is not set -# CONFIG_FB_CYBER2000 is not set -# CONFIG_FB_DA8XX is not set -# CONFIG_FB_DDC is not set -# CONFIG_FB_FLEX is not set -# CONFIG_FB_FOREIGN_ENDIAN is not set -# CONFIG_FB_FSL_DIU is not set -# CONFIG_FB_GEODE is not set -# CONFIG_FB_GOLDFISH is not set -# CONFIG_FB_HGA is not set -# CONFIG_FB_I740 is not set -# CONFIG_FB_IBM_GXT4500 is not set -# CONFIG_FB_IMSTT is not set -# CONFIG_FB_IMX is not set -# CONFIG_FB_KYRO is not set -# CONFIG_FB_LE80578 is not set -# CONFIG_FB_LITTLE_ENDIAN is not set -# CONFIG_FB_MACMODES is not set -# CONFIG_FB_MATROX is not set -# CONFIG_FB_MB862XX is not set -# CONFIG_FB_METRONOME is not set -# CONFIG_FB_MODE_HELPERS is not set -# CONFIG_FB_MXS is not set -# CONFIG_FB_N411 is not set -# CONFIG_FB_NEOMAGIC is not set -CONFIG_FB_NOTIFY=y -# CONFIG_FB_NVIDIA is not set -# CONFIG_FB_OF is not set -# CONFIG_FB_OMAP2 is not set -# CONFIG_FB_OPENCORES is not set -# CONFIG_FB_PM2 is not set -# CONFIG_FB_PM3 is not set -# CONFIG_FB_PS3 is not set -# CONFIG_FB_PXA is not set -# CONFIG_FB_RADEON is not set -# CONFIG_FB_RIVA is not set -# CONFIG_FB_S1D13XXX is not set -# CONFIG_FB_S3 is not set -# CONFIG_FB_SAVAGE is not set -# CONFIG_FB_SIMPLE is not set -# CONFIG_FB_SIS is not set -# CONFIG_FB_SM712 is not set -# CONFIG_FB_SM750 is not set -# CONFIG_FB_SMSCUFX is not set -# CONFIG_FB_SSD1307 is not set -# CONFIG_FB_SVGALIB is not set -# CONFIG_FB_SYS_COPYAREA is not set -# CONFIG_FB_SYS_FILLRECT is not set -# CONFIG_FB_SYS_FOPS is not set -# CONFIG_FB_SYS_IMAGEBLIT is not set -# CONFIG_FB_TFT is not set -# CONFIG_FB_TFT_AGM1264K_FL is not set -# CONFIG_FB_TFT_BD663474 is not set -# CONFIG_FB_TFT_FBTFT_DEVICE is not set -# CONFIG_FB_TFT_HX8340BN is not set -# CONFIG_FB_TFT_HX8347D is not set -# CONFIG_FB_TFT_HX8353D is not set -# CONFIG_FB_TFT_HX8357D is not set -# CONFIG_FB_TFT_ILI9163 is not set -# CONFIG_FB_TFT_ILI9320 is not set -# CONFIG_FB_TFT_ILI9325 is not set -# CONFIG_FB_TFT_ILI9340 is not set -# CONFIG_FB_TFT_ILI9341 is not set -# CONFIG_FB_TFT_ILI9481 is not set -# CONFIG_FB_TFT_ILI9486 is not set -# CONFIG_FB_TFT_PCD8544 is not set -# CONFIG_FB_TFT_RA8875 is not set -# CONFIG_FB_TFT_S6D02A1 is not set -# CONFIG_FB_TFT_S6D1121 is not set -# CONFIG_FB_TFT_SEPS525 is not set -# CONFIG_FB_TFT_SH1106 is not set -# CONFIG_FB_TFT_SSD1289 is not set -# CONFIG_FB_TFT_SSD1305 is not set -# CONFIG_FB_TFT_SSD1306 is not set -# CONFIG_FB_TFT_SSD1325 is not set -# CONFIG_FB_TFT_SSD1331 is not set -# CONFIG_FB_TFT_SSD1351 is not set -# CONFIG_FB_TFT_ST7735R is not set -# CONFIG_FB_TFT_ST7789V is not set -# CONFIG_FB_TFT_TINYLCD is not set -# CONFIG_FB_TFT_TLS8204 is not set -# CONFIG_FB_TFT_UC1611 is not set -# CONFIG_FB_TFT_UC1701 is not set -# CONFIG_FB_TFT_UPD161704 is not set -# CONFIG_FB_TFT_WATTEROTT is not set -# CONFIG_FB_TILEBLITTING is not set -# CONFIG_FB_TMIO is not set -# CONFIG_FB_TRIDENT is not set -# CONFIG_FB_UDL is not set -# CONFIG_FB_UVESA is not set -# CONFIG_FB_VGA16 is not set -# CONFIG_FB_VIA is not set -# CONFIG_FB_VIRTUAL is not set -# CONFIG_FB_VOODOO1 is not set -# CONFIG_FB_VT8623 is not set -# CONFIG_FB_XGI is not set -# CONFIG_FCOE is not set -# CONFIG_FCOE_FNIC is not set -# CONFIG_FDDI is not set -# CONFIG_FEALNX is not set -# CONFIG_FENCE_TRACE is not set -# CONFIG_FHANDLE is not set -CONFIG_FIB_RULES=y -# CONFIG_FIELDBUS_DEV is not set -CONFIG_FILE_LOCKING=y -# CONFIG_FIND_BIT_BENCHMARK is not set -# CONFIG_FIREWIRE is not set -# CONFIG_FIREWIRE_NOSY is not set -# CONFIG_FIREWIRE_SERIAL is not set -# CONFIG_FIRMWARE_EDID is not set -# CONFIG_FIRMWARE_IN_KERNEL is not set -# CONFIG_FIRMWARE_MEMMAP is not set -# CONFIG_FIT_PARTITION is not set -# CONFIG_FIXED_PHY is not set -CONFIG_FLATMEM=y -CONFIG_FLATMEM_MANUAL=y -CONFIG_FLAT_NODE_MEM_MAP=y -# CONFIG_FM10K is not set -# CONFIG_FMC is not set -# CONFIG_FONTS is not set -# CONFIG_FONT_6x8 is not set -# CONFIG_FONT_TER16x32 is not set -# CONFIG_FORCEDETH is not set -CONFIG_FORCE_MAX_ZONEORDER=11 -# CONFIG_FORCE_NR_CPUS is not set -CONFIG_FORTIFY_SOURCE=y -# CONFIG_FPGA is not set -# CONFIG_FRAMEBUFFER_CONSOLE is not set -# CONFIG_FRAMEBUFFER_CONSOLE_DEFERRED_TAKEOVER is not set -# CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION is not set -# CONFIG_FRAME_POINTER is not set -# CONFIG_FREEZER is not set -# CONFIG_FRONTSWAP is not set -# CONFIG_FSCACHE is not set -# CONFIG_FSI is not set -# CONFIG_FSL_EDMA is not set -# CONFIG_FSL_ENETC is not set -# CONFIG_FSL_ENETC_IERB is not set -# CONFIG_FSL_ENETC_MDIO is not set -# CONFIG_FSL_ENETC_VF is not set -# CONFIG_FSL_ERRATUM_A008585 is not set -# CONFIG_FSL_MC_BUS is not set -# CONFIG_FSL_PQ_MDIO is not set -# CONFIG_FSL_QDMA is not set -# CONFIG_FSL_RCPM is not set -# CONFIG_FSL_XGMAC_MDIO is not set -CONFIG_FSNOTIFY=y -# CONFIG_FS_DAX is not set -# CONFIG_FS_ENCRYPTION is not set -# CONFIG_FS_POSIX_ACL is not set -# CONFIG_FS_VERITY is not set -# CONFIG_FTGMAC100 is not set -# CONFIG_FTL is not set -# CONFIG_FTMAC100 is not set -# CONFIG_FTRACE is not set -# CONFIG_FTRACE_RECORD_RECURSION is not set -# CONFIG_FTRACE_SORT_STARTUP_TEST is not set -# CONFIG_FTRACE_STARTUP_TEST is not set -# CONFIG_FTR_FIXUP_SELFTEST is not set -# CONFIG_FTWDT010_WATCHDOG is not set -# CONFIG_FUJITSU_ERRATUM_010001 is not set -# CONFIG_FUJITSU_ES is not set -# CONFIG_FUJITSU_LAPTOP is not set -# CONFIG_FUJITSU_TABLET is not set -# CONFIG_FUNCTION_ERROR_INJECTION is not set -# CONFIG_FUNCTION_TRACER is not set -# CONFIG_FUN_ETH is not set -# CONFIG_FUSE_FS is not set -# CONFIG_FUSION is not set -# CONFIG_FUSION_FC is not set -# CONFIG_FUSION_SAS is not set -# CONFIG_FUSION_SPI is not set -CONFIG_FUTEX=y -CONFIG_FUTEX_PI=y -# CONFIG_FW_CFG_SYSFS is not set -# CONFIG_FW_DEVLINK_SYNC_STATE_TIMEOUT is not set -CONFIG_FW_LOADER=y -# CONFIG_FW_LOADER_COMPRESS is not set -CONFIG_FW_LOADER_USER_HELPER=y -CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y -# CONFIG_FW_UPLOAD is not set -# CONFIG_FXAS21002C is not set -# CONFIG_FXLS8962AF_I2C is not set -# CONFIG_FXLS8962AF_SPI is not set -# CONFIG_FXOS8700_I2C is not set -# CONFIG_FXOS8700_SPI is not set -CONFIG_GACT_PROB=y -# CONFIG_GADGET_UAC1 is not set -# CONFIG_GAMEPORT is not set -# CONFIG_GATEWORKS_GW16083 is not set -# CONFIG_GCC_PLUGINS is not set -# CONFIG_GCOV is not set -# CONFIG_GCOV_KERNEL is not set -# CONFIG_GDB_SCRIPTS is not set -# CONFIG_GDS_FORCE_MITIGATION is not set -# CONFIG_GEMINI_ETHERNET is not set -# CONFIG_GENERIC_ADC_BATTERY is not set -# CONFIG_GENERIC_ADC_THERMAL is not set -CONFIG_GENERIC_CALIBRATE_DELAY=y -# CONFIG_GENERIC_CPU_DEVICES is not set -CONFIG_GENERIC_HWEIGHT=y -# CONFIG_GENERIC_IRQ_DEBUGFS is not set -CONFIG_GENERIC_IRQ_IPI=y -CONFIG_GENERIC_IRQ_PROBE=y -CONFIG_GENERIC_NET_UTILS=y -# CONFIG_GENERIC_PHY is not set -CONFIG_GENERIC_PTDUMP=y -CONFIG_GENERIC_VDSO_TIME_NS=y -# CONFIG_GENEVE is not set -# CONFIG_GENWQE is not set -# CONFIG_GFS2_FS is not set -# CONFIG_GIGABYTE_WMI is not set -# CONFIG_GIGASET_CAPI is not set -# CONFIG_GIGASET_DEBUG is not set -# CONFIG_GIGASET_DUMMYLL is not set -# CONFIG_GLOB_SELFTEST is not set -# CONFIG_GNSS is not set -# CONFIG_GOLDFISH is not set -# CONFIG_GOOGLE_CBMEM is not set -# CONFIG_GOOGLE_FIRMWARE is not set -# CONFIG_GOOGLE_FRAMEBUFFER_COREBOOT is not set -# CONFIG_GOOGLE_MEMCONSOLE_X86_LEGACY is not set -# CONFIG_GOOGLE_SMI is not set -# CONFIG_GP2AP002 is not set -# CONFIG_GP2AP020A00F is not set -# CONFIG_GPD_POCKET_FAN is not set -CONFIG_GPIOLIB=y -CONFIG_GPIOLIB_FASTPATH_LIMIT=512 -# CONFIG_GPIO_104_DIO_48E is not set -# CONFIG_GPIO_104_IDIO_16 is not set -# CONFIG_GPIO_104_IDI_48 is not set -# CONFIG_GPIO_74X164 is not set -# CONFIG_GPIO_74XX_MMIO is not set -# CONFIG_GPIO_ADNP is not set -# CONFIG_GPIO_ADP5588 is not set -# CONFIG_GPIO_AGGREGATOR is not set -# CONFIG_GPIO_ALTERA is not set -# CONFIG_GPIO_AMD8111 is not set -# CONFIG_GPIO_AMDPT is not set -# CONFIG_GPIO_AMD_FCH is not set -# CONFIG_GPIO_BCM_KONA is not set -# CONFIG_GPIO_BT8XX is not set -# CONFIG_GPIO_CADENCE is not set -# CONFIG_GPIO_CASCADE is not set -# CONFIG_GPIO_CDEV is not set -# CONFIG_GPIO_CDEV_V1 is not set -# CONFIG_GPIO_CS5535 is not set -# CONFIG_GPIO_DWAPB is not set -# CONFIG_GPIO_EM is not set -# CONFIG_GPIO_EXAR is not set -# CONFIG_GPIO_F7188X is not set -# CONFIG_GPIO_FTGPIO010 is not set -# CONFIG_GPIO_GENERIC_PLATFORM is not set -# CONFIG_GPIO_GPIO_MM is not set -# CONFIG_GPIO_GRGPIO is not set -# CONFIG_GPIO_GW_PLD is not set -# CONFIG_GPIO_HLWD is not set -# CONFIG_GPIO_ICH is not set -# CONFIG_GPIO_IT87 is not set -# CONFIG_GPIO_LOGICVC is not set -# CONFIG_GPIO_LYNXPOINT is not set -# CONFIG_GPIO_MAX3191X is not set -# CONFIG_GPIO_MAX7300 is not set -# CONFIG_GPIO_MAX7301 is not set -# CONFIG_GPIO_MAX732X is not set -# CONFIG_GPIO_MB86S7X is not set -# CONFIG_GPIO_MC33880 is not set -# CONFIG_GPIO_ML_IOH is not set -# CONFIG_GPIO_MOCKUP is not set -# CONFIG_GPIO_MPC8XXX is not set -# CONFIG_GPIO_PCA953X is not set -# CONFIG_GPIO_PCA953X_IRQ is not set -# CONFIG_GPIO_PCA9570 is not set -# CONFIG_GPIO_PCF857X is not set -# CONFIG_GPIO_PCH is not set -# CONFIG_GPIO_PCIE_IDIO_24 is not set -# CONFIG_GPIO_PCI_IDIO_16 is not set -# CONFIG_GPIO_PISOSR is not set -# CONFIG_GPIO_PL061 is not set -# CONFIG_GPIO_PWM is not set -# CONFIG_GPIO_RCAR is not set -# CONFIG_GPIO_RDC321X is not set -# CONFIG_GPIO_SAMA5D2_PIOBU is not set -# CONFIG_GPIO_SCH is not set -# CONFIG_GPIO_SCH311X is not set -# CONFIG_GPIO_SIFIVE is not set -# CONFIG_GPIO_SIM is not set -# CONFIG_GPIO_SX150X is not set -# CONFIG_GPIO_SYSCON is not set -CONFIG_GPIO_SYSFS=y -# CONFIG_GPIO_TPIC2810 is not set -# CONFIG_GPIO_TS4900 is not set -# CONFIG_GPIO_TS5500 is not set -# CONFIG_GPIO_VIRTIO is not set -# CONFIG_GPIO_VX855 is not set -# CONFIG_GPIO_WATCHDOG is not set -# CONFIG_GPIO_WINBOND is not set -# CONFIG_GPIO_WS16C48 is not set -# CONFIG_GPIO_XGENE is not set -# CONFIG_GPIO_XILINX is not set -# CONFIG_GPIO_XRA1403 is not set -# CONFIG_GPIO_ZEVIO is not set -# CONFIG_GPIO_ZX is not set -# CONFIG_GP_PCI1XXXX is not set -# CONFIG_GREENASIA_FF is not set -# CONFIG_GREYBUS is not set -# CONFIG_GS_FPGABOOT is not set -# CONFIG_GTP is not set -# CONFIG_GUP_BENCHMARK is not set -# CONFIG_GUP_TEST is not set -# CONFIG_GVE is not set -# CONFIG_HABANA_AI is not set -# CONFIG_HAMACHI is not set -# CONFIG_HAMRADIO is not set -# CONFIG_HAPPYMEAL is not set -CONFIG_HARDENED_USERCOPY=y -# CONFIG_HARDENED_USERCOPY_FALLBACK is not set -# CONFIG_HARDENED_USERCOPY_PAGESPAN is not set -CONFIG_HARDEN_BRANCH_HISTORY=y -CONFIG_HARDEN_EL2_VECTORS=y -# CONFIG_HARDLOCKUP_DETECTOR is not set -# CONFIG_HAVE_ARM_ARCH_TIMER is not set -# CONFIG_HCALL_STATS is not set -# CONFIG_HDC100X is not set -# CONFIG_HDC2010 is not set -# CONFIG_HDLC is not set -# CONFIG_HDLC_CISCO is not set -# CONFIG_HDLC_FR is not set -# CONFIG_HDLC_PPP is not set -# CONFIG_HDLC_RAW is not set -# CONFIG_HDLC_RAW_ETH is not set -# CONFIG_HDMI_LPE_AUDIO is not set -# CONFIG_HDQ_MASTER_OMAP is not set -# CONFIG_HEADERS_CHECK is not set -# CONFIG_HEADERS_INSTALL is not set -# CONFIG_HEADER_TEST is not set -# CONFIG_HERMES is not set -# CONFIG_HFSPLUS_FS is not set -# CONFIG_HFSPLUS_FS_POSIX_ACL is not set -# CONFIG_HFS_FS is not set -# CONFIG_HFS_FS_POSIX_ACL is not set -# CONFIG_HI6421V600_IRQ is not set -# CONFIG_HI8435 is not set -# CONFIG_HIBERNATION is not set -# CONFIG_HID is not set -# CONFIG_HIDRAW is not set -# CONFIG_HID_A4TECH is not set -# CONFIG_HID_ACCUTOUCH is not set -# CONFIG_HID_ACRUX is not set -# CONFIG_HID_ACRUX_FF is not set -# CONFIG_HID_ALPS is not set -# CONFIG_HID_APPLE is not set -# CONFIG_HID_APPLEIR is not set -# CONFIG_HID_ASUS is not set -# CONFIG_HID_AUREAL is not set -# CONFIG_HID_BATTERY_STRENGTH is not set -# CONFIG_HID_BELKIN is not set -# CONFIG_HID_BETOP_FF is not set -# CONFIG_HID_BIGBEN_FF is not set -# CONFIG_HID_CHERRY is not set -# CONFIG_HID_CHICONY is not set -# CONFIG_HID_CMEDIA is not set -# CONFIG_HID_CORSAIR is not set -# CONFIG_HID_COUGAR is not set -# CONFIG_HID_CP2112 is not set -# CONFIG_HID_CREATIVE_SB0540 is not set -# CONFIG_HID_CYPRESS is not set -# CONFIG_HID_DRAGONRISE is not set -# CONFIG_HID_ELAN is not set -# CONFIG_HID_ELECOM is not set -# CONFIG_HID_ELO is not set -# CONFIG_HID_EMS_FF is not set -# CONFIG_HID_EZKEY is not set -# CONFIG_HID_FT260 is not set -# CONFIG_HID_GEMBIRD is not set -# CONFIG_HID_GENERIC is not set -# CONFIG_HID_GFRM is not set -# CONFIG_HID_GLORIOUS is not set -# CONFIG_HID_GOOGLE_HAMMER is not set -# CONFIG_HID_GREENASIA is not set -# CONFIG_HID_GT683R is not set -# CONFIG_HID_GYRATION is not set -# CONFIG_HID_HOLTEK is not set -# CONFIG_HID_ICADE is not set -# CONFIG_HID_ITE is not set -# CONFIG_HID_JABRA is not set -# CONFIG_HID_KENSINGTON is not set -# CONFIG_HID_KEYTOUCH is not set -# CONFIG_HID_KYE is not set -# CONFIG_HID_LCPOWER is not set -# CONFIG_HID_LED is not set -# CONFIG_HID_LENOVO is not set -# CONFIG_HID_LETSKETCH is not set -# CONFIG_HID_LOGITECH is not set -# CONFIG_HID_LOGITECH_DJ is not set -# CONFIG_HID_LOGITECH_HIDPP is not set -# CONFIG_HID_MACALLY is not set -# CONFIG_HID_MAGICMOUSE is not set -# CONFIG_HID_MALTRON is not set -# CONFIG_HID_MAYFLASH is not set -# CONFIG_HID_MCP2221 is not set -# CONFIG_HID_MEGAWORLD_FF is not set -# CONFIG_HID_MICROSOFT is not set -# CONFIG_HID_MONTEREY is not set -# CONFIG_HID_MULTITOUCH is not set -# CONFIG_HID_NINTENDO is not set -# CONFIG_HID_NTI is not set -# CONFIG_HID_NTRIG is not set -# CONFIG_HID_ORTEK is not set -# CONFIG_HID_PANTHERLORD is not set -# CONFIG_HID_PENMOUNT is not set -# CONFIG_HID_PETALYNX is not set -# CONFIG_HID_PICOLCD is not set -# CONFIG_HID_PID is not set -# CONFIG_HID_PLANTRONICS is not set -# CONFIG_HID_PLAYSTATION is not set -# CONFIG_HID_PRIMAX is not set -# CONFIG_HID_PRODIKEYS is not set -# CONFIG_HID_PXRC is not set -# CONFIG_HID_RAZER is not set -# CONFIG_HID_REDRAGON is not set -# CONFIG_HID_RETRODE is not set -# CONFIG_HID_RMI is not set -# CONFIG_HID_ROCCAT is not set -# CONFIG_HID_SAITEK is not set -# CONFIG_HID_SAMSUNG is not set -# CONFIG_HID_SEMITEK is not set -# CONFIG_HID_SENSOR_HUB is not set -# CONFIG_HID_SIGMAMICRO is not set -# CONFIG_HID_SMARTJOYPLUS is not set -# CONFIG_HID_SONY is not set -# CONFIG_HID_SPEEDLINK is not set -# CONFIG_HID_STEAM is not set -# CONFIG_HID_STEELSERIES is not set -# CONFIG_HID_SUNPLUS is not set -# CONFIG_HID_THINGM is not set -# CONFIG_HID_THRUSTMASTER is not set -# CONFIG_HID_TIVO is not set -# CONFIG_HID_TOPRE is not set -# CONFIG_HID_TOPSEED is not set -# CONFIG_HID_TWINHAN is not set -# CONFIG_HID_U2FZERO is not set -# CONFIG_HID_UCLOGIC is not set -# CONFIG_HID_UDRAW_PS3 is not set -# CONFIG_HID_VIEWSONIC is not set -# CONFIG_HID_VIVALDI is not set -# CONFIG_HID_VRC2 is not set -# CONFIG_HID_WACOM is not set -# CONFIG_HID_WALTOP is not set -# CONFIG_HID_WIIMOTE is not set -# CONFIG_HID_XIAOMI is not set -# CONFIG_HID_XINMO is not set -# CONFIG_HID_ZEROPLUS is not set -# CONFIG_HID_ZYDACRON is not set -# CONFIG_HIGHMEM is not set -CONFIG_HIGH_RES_TIMERS=y -# CONFIG_HINIC is not set -# CONFIG_HIP04_ETH is not set -# CONFIG_HIPPI is not set -# CONFIG_HISILICON_ERRATUM_161010101 is not set -# CONFIG_HISILICON_ERRATUM_161600802 is not set -# CONFIG_HISI_DMA is not set -# CONFIG_HISI_FEMAC is not set -# CONFIG_HISI_HIKEY_USB is not set -# CONFIG_HISI_PCIE_PMU is not set -# CONFIG_HISI_PTT is not set -# CONFIG_HIST_TRIGGERS_DEBUG is not set -# CONFIG_HIX5HD2_GMAC is not set -# CONFIG_HMC425 is not set -# CONFIG_HMC6352 is not set -# CONFIG_HNS is not set -# CONFIG_HNS3 is not set -# CONFIG_HNS3_PMU is not set -# CONFIG_HNS_DSAF is not set -# CONFIG_HNS_ENET is not set -# CONFIG_HOSTAP is not set -# CONFIG_HOSTAP_CS is not set -# CONFIG_HOSTAP_PCI is not set -# CONFIG_HOSTAP_PLX is not set -# CONFIG_HOTPLUG_CPU is not set -# CONFIG_HOTPLUG_PCI is not set -# CONFIG_HOTPLUG_PCI_SHPC is not set -# CONFIG_HP03 is not set -# CONFIG_HP100 is not set -# CONFIG_HP206C is not set -CONFIG_HPET_MMAP_DEFAULT=y -# CONFIG_HPFS_FS is not set -# CONFIG_HP_ILO is not set -# CONFIG_HP_WATCHDOG is not set -# CONFIG_HP_WIRELESS is not set -# CONFIG_HSA_AMD is not set -# CONFIG_HSI is not set -# CONFIG_HSR is not set -# CONFIG_HTC_EGPIO is not set -# CONFIG_HTC_I2CPLD is not set -# CONFIG_HTC_PASIC3 is not set -# CONFIG_HTE is not set -# CONFIG_HTS221 is not set -# CONFIG_HTU21 is not set -# CONFIG_HUGETLBFS is not set -# CONFIG_HUGETLB_PAGE is not set -# CONFIG_HUAWEI_WMI is not set -# CONFIG_HVC_DCC is not set -# CONFIG_HVC_UDBG is not set -# CONFIG_HWLAT_TRACER is not set -# CONFIG_HWMON is not set -# CONFIG_HWMON_DEBUG_CHIP is not set -# CONFIG_HWMON_VID is not set -# CONFIG_HWSPINLOCK is not set -# CONFIG_HWSPINLOCK_OMAP is not set -CONFIG_HW_PERF_EVENTS=y -# CONFIG_HW_RANDOM is not set -# CONFIG_HW_RANDOM_AMD is not set -# CONFIG_HW_RANDOM_ARM_SMCCC_TRNG is not set -# CONFIG_HW_RANDOM_ATMEL is not set -# CONFIG_HW_RANDOM_BA431 is not set -# CONFIG_HW_RANDOM_BCM2835 is not set -# CONFIG_HW_RANDOM_CAVIUM is not set -# CONFIG_HW_RANDOM_CCTRNG is not set -# CONFIG_HW_RANDOM_CN10K is not set -# CONFIG_HW_RANDOM_EXYNOS is not set -# CONFIG_HW_RANDOM_GEODE is not set -# CONFIG_HW_RANDOM_INTEL is not set -# CONFIG_HW_RANDOM_IPROC_RNG200 is not set -# CONFIG_HW_RANDOM_MTK is not set -# CONFIG_HW_RANDOM_OMAP is not set -# CONFIG_HW_RANDOM_OMAP3_ROM is not set -# CONFIG_HW_RANDOM_PPC4XX is not set -# CONFIG_HW_RANDOM_TIMERIOMEM is not set -CONFIG_HW_RANDOM_TPM=y -# CONFIG_HW_RANDOM_VIA is not set -# CONFIG_HW_RANDOM_VIRTIO is not set -# CONFIG_HW_RANDOM_XIPHERA is not set -# CONFIG_HX711 is not set -# CONFIG_HYPERV is not set -# CONFIG_HYPERV_TSCPAGE is not set -# CONFIG_HYSDN is not set -CONFIG_HZ=100 -CONFIG_HZ_100=y -# CONFIG_HZ_1000 is not set -# CONFIG_HZ_1024 is not set -# CONFIG_HZ_128 is not set -# CONFIG_HZ_200 is not set -# CONFIG_HZ_24 is not set -# CONFIG_HZ_250 is not set -# CONFIG_HZ_256 is not set -# CONFIG_HZ_300 is not set -# CONFIG_HZ_48 is not set -# CONFIG_HZ_500 is not set -# CONFIG_HZ_PERIODIC is not set -# CONFIG_I2C is not set -# CONFIG_I2C_ALGOBIT is not set -# CONFIG_I2C_ALGOPCA is not set -# CONFIG_I2C_ALGOPCF is not set -# CONFIG_I2C_ALI1535 is not set -# CONFIG_I2C_ALI1563 is not set -# CONFIG_I2C_ALI15X3 is not set -# CONFIG_I2C_AMD756 is not set -# CONFIG_I2C_AMD8111 is not set -# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set -# CONFIG_I2C_AU1550 is not set -# CONFIG_I2C_BCM2835 is not set -# CONFIG_I2C_BCM_IPROC is not set -# CONFIG_I2C_BRCMSTB is not set -# CONFIG_I2C_CADENCE is not set -# CONFIG_I2C_CBUS_GPIO is not set -# CONFIG_I2C_CHARDEV is not set -# CONFIG_I2C_COMPAT is not set -# CONFIG_I2C_CP2615 is not set -# CONFIG_I2C_DEBUG_ALGO is not set -# CONFIG_I2C_DEBUG_BUS is not set -# CONFIG_I2C_DEBUG_CORE is not set -# CONFIG_I2C_DEMUX_PINCTRL is not set -# CONFIG_I2C_DESIGNWARE_PCI is not set -# CONFIG_I2C_DESIGNWARE_PLATFORM is not set -# CONFIG_I2C_DESIGNWARE_SLAVE is not set -# CONFIG_I2C_DIOLAN_U2C is not set -# CONFIG_I2C_EG20T is not set -# CONFIG_I2C_ELEKTOR is not set -# CONFIG_I2C_EMEV2 is not set -# CONFIG_I2C_GPIO is not set -# CONFIG_I2C_GPIO_FAULT_INJECTOR is not set -# CONFIG_I2C_HELPER_AUTO is not set -# CONFIG_I2C_HID is not set -# CONFIG_I2C_HID_OF is not set -# CONFIG_I2C_HID_OF_ELAN is not set -# CONFIG_I2C_HID_OF_GOODIX is not set -# CONFIG_I2C_I801 is not set -# CONFIG_I2C_IBM_IIC is not set -# CONFIG_I2C_IMG is not set -# CONFIG_I2C_ISCH is not set -# CONFIG_I2C_ISMT is not set -# CONFIG_I2C_JZ4780 is not set -# CONFIG_I2C_MLXCPLD is not set -# CONFIG_I2C_MPC is not set -# CONFIG_I2C_MT65XX is not set -# CONFIG_I2C_MUX is not set -# CONFIG_I2C_MUX_GPIO is not set -# CONFIG_I2C_MUX_GPMUX is not set -# CONFIG_I2C_MUX_LTC4306 is not set -# CONFIG_I2C_MUX_MLXCPLD is not set -# CONFIG_I2C_MUX_PCA9541 is not set -# CONFIG_I2C_MUX_PCA954x is not set -# CONFIG_I2C_MUX_PINCTRL is not set -# CONFIG_I2C_MUX_REG is not set -# CONFIG_I2C_MV64XXX is not set -# CONFIG_I2C_NFORCE2 is not set -# CONFIG_I2C_NOMADIK is not set -# CONFIG_I2C_NVIDIA_GPU is not set -# CONFIG_I2C_OCORES is not set -# CONFIG_I2C_OCTEON is not set -# CONFIG_I2C_PARPORT is not set -# CONFIG_I2C_PARPORT_LIGHT is not set -# CONFIG_I2C_PCA_ISA is not set -# CONFIG_I2C_PCA_PLATFORM is not set -# CONFIG_I2C_PCI1XXXX is not set -# CONFIG_I2C_PIIX4 is not set -# CONFIG_I2C_PXA_PCI is not set -# CONFIG_I2C_PXA_SLAVE is not set -# CONFIG_I2C_RCAR is not set -# CONFIG_I2C_RK3X is not set -# CONFIG_I2C_ROBOTFUZZ_OSIF is not set -# CONFIG_I2C_S3C2410 is not set -# CONFIG_I2C_SCMI is not set -# CONFIG_I2C_SH_MOBILE is not set -# CONFIG_I2C_SIMTEC is not set -# CONFIG_I2C_SIS5595 is not set -# CONFIG_I2C_SIS630 is not set -# CONFIG_I2C_SIS96X is not set -# CONFIG_I2C_SLAVE is not set -# CONFIG_I2C_SLAVE_EEPROM is not set -# CONFIG_I2C_SMBUS is not set -# CONFIG_I2C_STUB is not set -# CONFIG_I2C_TAOS_EVM is not set -# CONFIG_I2C_THUNDERX is not set -# CONFIG_I2C_TINY_USB is not set -# CONFIG_I2C_VERSATILE is not set -# CONFIG_I2C_VIA is not set -# CONFIG_I2C_VIAPRO is not set -# CONFIG_I2C_VIRTIO is not set -# CONFIG_I2C_XILINX is not set -# CONFIG_I3C is not set -# CONFIG_I40E is not set -# CONFIG_I40EVF is not set -# CONFIG_I6300ESB_WDT is not set -# CONFIG_I82092 is not set -# CONFIG_I82365 is not set -# CONFIG_IAQCORE is not set -# CONFIG_IBM_ASM is not set -# CONFIG_IBM_EMAC_DEBUG is not set -# CONFIG_IBM_EMAC_EMAC4 is not set -# CONFIG_IBM_EMAC_MAL_CLR_ICINTSTAT is not set -# CONFIG_IBM_EMAC_MAL_COMMON_ERR is not set -# CONFIG_IBM_EMAC_NO_FLOW_CTRL is not set -# CONFIG_IBM_EMAC_RGMII is not set -# CONFIG_IBM_EMAC_TAH is not set -# CONFIG_IBM_EMAC_ZMII is not set -# CONFIG_ICE is not set -# CONFIG_ICP10100 is not set -# CONFIG_ICPLUS_PHY is not set -# CONFIG_ICS932S401 is not set -# CONFIG_ICST is not set -# CONFIG_IDE is not set -# CONFIG_IDEAPAD_LAPTOP is not set -# CONFIG_IDE_GD is not set -# CONFIG_IDE_PROC_FS is not set -# CONFIG_IDE_TASK_IOCTL is not set -# CONFIG_IDLE_PAGE_TRACKING is not set -# CONFIG_IEEE802154 is not set -# CONFIG_IEEE802154_ADF7242 is not set -# CONFIG_IEEE802154_ATUSB is not set -# CONFIG_IEEE802154_CA8210 is not set -# CONFIG_IEEE802154_HWSIM is not set -# CONFIG_IEEE802154_MCR20A is not set -# CONFIG_IFB is not set -# CONFIG_IGB is not set -# CONFIG_IGBVF is not set -# CONFIG_IGC is not set -# CONFIG_IIO is not set -# CONFIG_IIO_BUFFER is not set -# CONFIG_IIO_BUFFER_CB is not set -# CONFIG_IIO_BUFFER_DMA is not set -# CONFIG_IIO_BUFFER_DMAENGINE is not set -# CONFIG_IIO_BUFFER_HDC2010 is not set -# CONFIG_IIO_BUFFER_HW_CONSUMER is not set -# CONFIG_IIO_CONFIGFS is not set -CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 -# CONFIG_IIO_CROS_EC_ACCEL_LEGACY is not set -# CONFIG_IIO_INTERRUPT_TRIGGER is not set -# CONFIG_IIO_MUX is not set -# CONFIG_IIO_PERIODIC_RTC_TRIGGER is not set -# CONFIG_IIO_RESCALE is not set -# CONFIG_IIO_SCMI is not set -# CONFIG_IIO_SIMPLE_DUMMY is not set -# CONFIG_IIO_SSP_SENSORHUB is not set -# CONFIG_IIO_ST_ACCEL_3AXIS is not set -# CONFIG_IIO_ST_GYRO_3AXIS is not set -# CONFIG_IIO_ST_LSM6DSX is not set -# CONFIG_IIO_ST_LSM9DS0 is not set -# CONFIG_IIO_ST_MAGN_3AXIS is not set -# CONFIG_IIO_ST_PRESS is not set -# CONFIG_IIO_SW_DEVICE is not set -# CONFIG_IIO_SW_TRIGGER is not set -# CONFIG_IIO_SYSFS_TRIGGER is not set -# CONFIG_IIO_TRIGGER is not set -# CONFIG_IIO_TRIGGERED_EVENT is not set -# CONFIG_IKCONFIG is not set -# CONFIG_IKCONFIG_PROC is not set -# CONFIG_IKHEADERS is not set -# CONFIG_IMA is not set -# CONFIG_IMAGE_CMDLINE_HACK is not set -# CONFIG_IMGPDC_WDT is not set -# CONFIG_IMG_MDC_DMA is not set -# CONFIG_IMX7D_ADC is not set -# CONFIG_IMX_IPUV3_CORE is not set -# CONFIG_IMX_THERMAL is not set -# CONFIG_INA2XX_ADC is not set -# CONFIG_INDIRECT_PIO is not set -CONFIG_INET=y -# CONFIG_INET6_AH is not set -# CONFIG_INET6_ESP is not set -# CONFIG_INET6_ESPINTCP is not set -# CONFIG_INET6_IPCOMP is not set -# CONFIG_INET6_TUNNEL is not set -# CONFIG_INET6_XFRM_TUNNEL is not set -# CONFIG_INET_AH is not set -CONFIG_INET_DIAG=y -# CONFIG_INET_ESP is not set -# CONFIG_INET_ESPINTCP is not set -# CONFIG_INET_IPCOMP is not set -# CONFIG_INET_LRO is not set -CONFIG_INET_MPTCP_DIAG=y -CONFIG_INET_TABLE_PERTURB_ORDER=16 -# CONFIG_INET_TCP_DIAG is not set -# CONFIG_INET_TUNNEL is not set -# CONFIG_INET_UDP_DIAG is not set -# CONFIG_INET_XFRM_TUNNEL is not set -# CONFIG_INFINIBAND is not set -# CONFIG_INFTL is not set -# CONFIG_INGENIC_ADC is not set -# CONFIG_INGENIC_CGU_JZ4725B is not set -# CONFIG_INGENIC_CGU_JZ4740 is not set -# CONFIG_INGENIC_CGU_JZ4760 is not set -# CONFIG_INGENIC_CGU_JZ4770 is not set -# CONFIG_INGENIC_CGU_JZ4780 is not set -# CONFIG_INGENIC_CGU_X1000 is not set -# CONFIG_INGENIC_CGU_X1830 is not set -# CONFIG_INGENIC_OST is not set -# CONFIG_INGENIC_SYSOST is not set -# CONFIG_INGENIC_TCU_CLK is not set -# CONFIG_INGENIC_TCU_IRQ is not set -# CONFIG_INGENIC_TIMER is not set -# CONFIG_INITRAMFS_PRESERVE_MTIME is not set -CONFIG_INIT_ENV_ARG_LIMIT=32 -# CONFIG_INIT_ON_ALLOC_DEFAULT_ON is not set -# CONFIG_INIT_ON_FREE_DEFAULT_ON is not set -# CONFIG_INIT_STACK_ALL_PATTERN is not set -# CONFIG_INIT_STACK_ALL_ZERO is not set -CONFIG_INIT_STACK_NONE=y -CONFIG_INOTIFY_USER=y -# CONFIG_INPUT is not set -# CONFIG_INPUT_AD714X is not set -# CONFIG_INPUT_ADXL34X is not set -# CONFIG_INPUT_APANEL is not set -# CONFIG_INPUT_ATI_REMOTE2 is not set -# CONFIG_INPUT_ATLAS_BTNS is not set -# CONFIG_INPUT_ATMEL_CAPTOUCH is not set -# CONFIG_INPUT_AXP20X_PEK is not set -# CONFIG_INPUT_BMA150 is not set -# CONFIG_INPUT_CM109 is not set -# CONFIG_INPUT_CMA3000 is not set -# CONFIG_INPUT_DA7280_HAPTICS is not set -# CONFIG_INPUT_DRV260X_HAPTICS is not set -# CONFIG_INPUT_DRV2665_HAPTICS is not set -# CONFIG_INPUT_DRV2667_HAPTICS is not set -# CONFIG_INPUT_E3X0_BUTTON is not set -# CONFIG_INPUT_EVBUG is not set -# CONFIG_INPUT_EVDEV is not set -# CONFIG_INPUT_FF_MEMLESS is not set -# CONFIG_INPUT_GP2A is not set -# CONFIG_INPUT_GPIO_BEEPER is not set -# CONFIG_INPUT_GPIO_DECODER is not set -# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set -# CONFIG_INPUT_GPIO_TILT_POLLED is not set -# CONFIG_INPUT_GPIO_VIBRA is not set -# CONFIG_INPUT_IDEAPAD_SLIDEBAR is not set -# CONFIG_INPUT_IMS_PCU is not set -# CONFIG_INPUT_IQS269A is not set -# CONFIG_INPUT_IQS626A is not set -# CONFIG_INPUT_IQS7222 is not set -# CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_KEYBOARD is not set -# CONFIG_INPUT_KEYSPAN_REMOTE is not set -# CONFIG_INPUT_KXTJ9 is not set -# CONFIG_INPUT_LEDS is not set -# CONFIG_INPUT_MATRIXKMAP is not set -# CONFIG_INPUT_MAX8997_HAPTIC is not set -CONFIG_INPUT_MISC=y -# CONFIG_INPUT_MMA8450 is not set -# CONFIG_INPUT_MOUSE is not set -# CONFIG_INPUT_MOUSEDEV is not set -# CONFIG_INPUT_MPU3050 is not set -# CONFIG_INPUT_MSM_VIBRATOR is not set -# CONFIG_INPUT_PALMAS_PWRBUTTON is not set -# CONFIG_INPUT_PCF8574 is not set -# CONFIG_INPUT_PCSPKR is not set -# CONFIG_INPUT_PM8941_PWRKEY is not set -# CONFIG_INPUT_PM8XXX_VIBRATOR is not set -# CONFIG_INPUT_POLLDEV is not set -# CONFIG_INPUT_POWERMATE is not set -# CONFIG_INPUT_PWM_BEEPER is not set -# CONFIG_INPUT_PWM_VIBRA is not set -# CONFIG_INPUT_REGULATOR_HAPTIC is not set -# CONFIG_INPUT_SOC_BUTTON_ARRAY is not set -# CONFIG_INPUT_SPARSEKMAP is not set -# CONFIG_INPUT_TABLET is not set -# CONFIG_INPUT_TOUCHSCREEN is not set -# CONFIG_INPUT_TPS65218_PWRBUTTON is not set -# CONFIG_INPUT_TWL4030_PWRBUTTON is not set -# CONFIG_INPUT_TWL4030_VIBRA is not set -# CONFIG_INPUT_TWL6040_VIBRA is not set -# CONFIG_INPUT_UINPUT is not set -# CONFIG_INPUT_WISTRON_BTNS is not set -# CONFIG_INPUT_YEALINK is not set -# CONFIG_INT340X_THERMAL is not set -# CONFIG_INTEGRITY is not set -# CONFIG_INTEGRITY_AUDIT is not set -# CONFIG_INTEGRITY_SIGNATURE is not set -# CONFIG_INTEL_ATOMISP2_LED is not set -# CONFIG_INTEL_ATOMISP2_PM is not set -# CONFIG_INTEL_CHT_INT33FE is not set -# CONFIG_INTEL_HID_EVENT is not set -# CONFIG_INTEL_IDLE is not set -# CONFIG_INTEL_IDMA64 is not set -# CONFIG_INTEL_INT0002_VGPIO is not set -# CONFIG_INTEL_IOATDMA is not set -# CONFIG_INTEL_ISH_HID is not set -# CONFIG_INTEL_MEI is not set -# CONFIG_INTEL_MEI_GSC is not set -# CONFIG_INTEL_MEI_ME is not set -# CONFIG_INTEL_MEI_TXE is not set -# CONFIG_INTEL_MIC_CARD is not set -# CONFIG_INTEL_MIC_HOST is not set -# CONFIG_INTEL_MID_PTI is not set -# CONFIG_INTEL_OAKTRAIL is not set -# CONFIG_INTEL_PMC_CORE is not set -# CONFIG_INTEL_PUNIT_IPC is not set -# CONFIG_INTEL_RST is not set -# CONFIG_INTEL_SMARTCONNECT is not set -# CONFIG_INTEL_SOC_PMIC is not set -# CONFIG_INTEL_SOC_PMIC_CHTDC_TI is not set -# CONFIG_INTEL_SOC_PMIC_CHTWC is not set -# CONFIG_INTEL_TCC_COOLING is not set -# CONFIG_INTEL_TDX_GUEST is not set -# CONFIG_INTEL_TH is not set -# CONFIG_INTEL_VBTN is not set -# CONFIG_INTEL_WMI_SBL_FW_UPDATE is not set -# CONFIG_INTEL_WMI_THUNDERBOLT is not set -# CONFIG_INTEL_XWAY_PHY is not set -# CONFIG_INTERCONNECT is not set -# CONFIG_INTERVAL_TREE_TEST is not set -# CONFIG_INV_ICM42600_I2C is not set -# CONFIG_INV_ICM42600_SPI is not set -# CONFIG_INV_MPU6050_I2C is not set -# CONFIG_INV_MPU6050_IIO is not set -# CONFIG_INV_MPU6050_SPI is not set -# CONFIG_IOMMU_DEFAULT_PASSTHROUGH is not set -# CONFIG_IOMMU_IO_PGTABLE_DART is not set -# CONFIG_IOMMU_SUPPORT is not set -# CONFIG_IONIC is not set -# CONFIG_IOSCHED_BFQ is not set -# CONFIG_IOSM is not set -CONFIG_IO_STRICT_DEVMEM=y -# CONFIG_IO_URING is not set -CONFIG_IO_WQ=y -# CONFIG_IP17XX_PHY is not set -# CONFIG_IP5XXX_POWER is not set -# CONFIG_IP6_NF_FILTER is not set -# CONFIG_IP6_NF_IPTABLES is not set -# CONFIG_IP6_NF_MANGLE is not set -# CONFIG_IP6_NF_MATCH_AH is not set -# CONFIG_IP6_NF_MATCH_EUI64 is not set -# CONFIG_IP6_NF_MATCH_FRAG is not set -# CONFIG_IP6_NF_MATCH_HL is not set -# CONFIG_IP6_NF_MATCH_IPV6HEADER is not set -# CONFIG_IP6_NF_MATCH_MH is not set -# CONFIG_IP6_NF_MATCH_OPTS is not set -# CONFIG_IP6_NF_MATCH_RPFILTER is not set -# CONFIG_IP6_NF_MATCH_RT is not set -# CONFIG_IP6_NF_MATCH_SRH is not set -# CONFIG_IP6_NF_NAT is not set -# CONFIG_IP6_NF_RAW is not set -# CONFIG_IP6_NF_SECURITY is not set -# CONFIG_IP6_NF_TARGET_HL is not set -# CONFIG_IP6_NF_TARGET_MASQUERADE is not set -# CONFIG_IP6_NF_TARGET_REJECT is not set -# CONFIG_IP6_NF_TARGET_SYNPROXY is not set -# CONFIG_IPACK_BUS is not set -# CONFIG_IPC_NS is not set -# CONFIG_IPMB_DEVICE_INTERFACE is not set -# CONFIG_IPMI_HANDLER is not set -CONFIG_IPV6=y -# CONFIG_IPV6_FOU is not set -# CONFIG_IPV6_FOU_TUNNEL is not set -# CONFIG_IPV6_ILA is not set -# CONFIG_IPV6_IOAM6_LWTUNNEL is not set -# CONFIG_IPV6_MIP6 is not set -# CONFIG_IPV6_MROUTE is not set -# CONFIG_IPV6_MROUTE_MULTIPLE_TABLES is not set -# CONFIG_IPV6_MULTIPLE_TABLES is not set -CONFIG_IPV6_NDISC_NODETYPE=y -# CONFIG_IPV6_OPTIMISTIC_DAD is not set -# CONFIG_IPV6_ROUTER_PREF is not set -# CONFIG_IPV6_ROUTE_INFO is not set -# CONFIG_IPV6_RPL_LWTUNNEL is not set -# CONFIG_IPV6_SEG6_HMAC is not set -# CONFIG_IPV6_SEG6_LWTUNNEL is not set -# CONFIG_IPV6_SIT is not set -# CONFIG_IPV6_SIT_6RD is not set -# CONFIG_IPV6_TUNNEL is not set -# CONFIG_IPV6_VTI is not set -# CONFIG_IPVLAN is not set -# CONFIG_IPVTAP is not set -# CONFIG_IPW2100 is not set -# CONFIG_IPW2100_DEBUG is not set -CONFIG_IPW2100_MONITOR=y -# CONFIG_IPW2200 is not set -# CONFIG_IPW2200_DEBUG is not set -CONFIG_IPW2200_MONITOR=y -# CONFIG_IPW2200_PROMISCUOUS is not set -# CONFIG_IPW2200_QOS is not set -# CONFIG_IPW2200_RADIOTAP is not set -# CONFIG_IPWIRELESS is not set -# CONFIG_IPX is not set -CONFIG_IP_ADVANCED_ROUTER=y -# CONFIG_IP_DCCP is not set -# CONFIG_IP_FIB_TRIE_STATS is not set -# CONFIG_IP_MROUTE is not set -CONFIG_IP_MROUTE_MULTIPLE_TABLES=y -CONFIG_IP_MULTICAST=y -CONFIG_IP_MULTIPLE_TABLES=y -# CONFIG_IP_NF_ARPFILTER is not set -# CONFIG_IP_NF_ARPTABLES is not set -# CONFIG_IP_NF_ARP_MANGLE is not set -# CONFIG_IP_NF_FILTER is not set -# CONFIG_IP_NF_IPTABLES is not set -# CONFIG_IP_NF_MANGLE is not set -# CONFIG_IP_NF_MATCH_AH is not set -# CONFIG_IP_NF_MATCH_ECN is not set -# CONFIG_IP_NF_MATCH_RPFILTER is not set -# CONFIG_IP_NF_MATCH_TTL is not set -# CONFIG_IP_NF_RAW is not set -# CONFIG_IP_NF_SECURITY is not set -# CONFIG_IP_NF_TARGET_CLUSTERIP is not set -# CONFIG_IP_NF_TARGET_ECN is not set -# CONFIG_IP_NF_TARGET_MASQUERADE is not set -# CONFIG_IP_NF_TARGET_NETMAP is not set -# CONFIG_IP_NF_TARGET_REDIRECT is not set -# CONFIG_IP_NF_TARGET_REJECT is not set -# CONFIG_IP_NF_TARGET_SYNPROXY is not set -# CONFIG_IP_NF_TARGET_TTL is not set -# CONFIG_IP_PIMSM_V1 is not set -# CONFIG_IP_PIMSM_V2 is not set -# CONFIG_IP_PNP is not set -CONFIG_IP_ROUTE_MULTIPATH=y -CONFIG_IP_ROUTE_VERBOSE=y -# CONFIG_IP_SCTP is not set -# CONFIG_IP_SET is not set -# CONFIG_IP_SET_HASH_IPMAC is not set -# CONFIG_IP_VS is not set -# CONFIG_IP_VS_MH is not set -CONFIG_IP_VS_MH_TAB_INDEX=10 -# CONFIG_IP_VS_TWOS is not set -# CONFIG_IRDA is not set -# CONFIG_IRQSOFF_TRACER is not set -# CONFIG_IRQ_ALL_CPUS is not set -# CONFIG_IRQ_DOMAIN_DEBUG is not set -# CONFIG_IRQ_POLL is not set -# CONFIG_IRQ_TIME_ACCOUNTING is not set -# CONFIG_IR_GPIO_CIR is not set -# CONFIG_IR_HIX5HD2 is not set -# CONFIG_IR_IGORPLUGUSB is not set -# CONFIG_IR_IGUANA is not set -# CONFIG_IR_IMG is not set -# CONFIG_IR_IMON is not set -# CONFIG_IR_IMON_RAW is not set -# CONFIG_IR_JVC_DECODER is not set -# CONFIG_IR_LIRC_CODEC is not set -# CONFIG_IR_MCEUSB is not set -# CONFIG_IR_NEC_DECODER is not set -# CONFIG_IR_RC5_DECODER is not set -# CONFIG_IR_RC6_DECODER is not set -# CONFIG_IR_REDRAT3 is not set -# CONFIG_IR_SERIAL is not set -# CONFIG_IR_SIR is not set -# CONFIG_IR_SONY_DECODER is not set -# CONFIG_IR_STREAMZAP is not set -# CONFIG_IR_TOY is not set -# CONFIG_IR_TTUSBIR is not set -# CONFIG_ISA_BUS is not set -# CONFIG_ISA_BUS_API is not set -# CONFIG_ISCSI_BOOT_SYSFS is not set -# CONFIG_ISCSI_TCP is not set -CONFIG_ISDN=y -# CONFIG_ISDN_AUDIO is not set -# CONFIG_ISDN_CAPI is not set -# CONFIG_ISDN_CAPI_CAPIDRV is not set -# CONFIG_ISDN_DIVERSION is not set -# CONFIG_ISDN_DRV_ACT2000 is not set -# CONFIG_ISDN_DRV_GIGASET is not set -# CONFIG_ISDN_DRV_HISAX is not set -# CONFIG_ISDN_DRV_ICN is not set -# CONFIG_ISDN_DRV_LOOP is not set -# CONFIG_ISDN_DRV_PCBIT is not set -# CONFIG_ISDN_DRV_SC is not set -# CONFIG_ISDN_I4L is not set -# CONFIG_ISL29003 is not set -# CONFIG_ISL29020 is not set -# CONFIG_ISL29125 is not set -# CONFIG_ISL29501 is not set -# CONFIG_ISO9660_FS is not set -# CONFIG_ISS4xx is not set -# CONFIG_ITG3200 is not set -# CONFIG_IWL3945 is not set -# CONFIG_IWLWIFI is not set -# CONFIG_IXGB is not set -# CONFIG_IXGBE is not set -# CONFIG_IXGBEVF is not set -# CONFIG_JAILHOUSE_GUEST is not set -# CONFIG_JBD2_DEBUG is not set -# CONFIG_JFFS2_CMODE_FAVOURLZO is not set -# CONFIG_JFFS2_CMODE_NONE is not set -CONFIG_JFFS2_CMODE_PRIORITY=y -# CONFIG_JFFS2_CMODE_SIZE is not set -CONFIG_JFFS2_COMPRESSION_OPTIONS=y -CONFIG_JFFS2_FS=y -CONFIG_JFFS2_FS_DEBUG=0 -# CONFIG_JFFS2_FS_POSIX_ACL is not set -# CONFIG_JFFS2_FS_SECURITY is not set -# CONFIG_JFFS2_FS_WBUF_VERIFY is not set -CONFIG_JFFS2_FS_WRITEBUFFER=y -CONFIG_JFFS2_FS_XATTR=y -CONFIG_JFFS2_LZMA=y -# CONFIG_JFFS2_LZO is not set -CONFIG_JFFS2_RTIME=y -# CONFIG_JFFS2_RUBIN is not set -CONFIG_JFFS2_SUMMARY=y -# CONFIG_JFFS2_ZLIB is not set -# CONFIG_JFS_DEBUG is not set -# CONFIG_JFS_FS is not set -# CONFIG_JFS_POSIX_ACL is not set -# CONFIG_JFS_SECURITY is not set -# CONFIG_JFS_STATISTICS is not set -# CONFIG_JME is not set -CONFIG_JOLIET=y -# CONFIG_JSA1212 is not set -# CONFIG_JUMP_LABEL is not set -# CONFIG_JZ4740_WDT is not set -# CONFIG_JZ4770_PHY is not set -# CONFIG_KALLSYMS is not set -# CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set -# CONFIG_KALLSYMS_ALL is not set -CONFIG_KALLSYMS_BASE_RELATIVE=y -# CONFIG_KALLSYMS_SELFTEST is not set -# CONFIG_KALLSYMS_UNCOMPRESSED is not set -# CONFIG_KARMA_PARTITION is not set -# CONFIG_KASAN is not set -# CONFIG_KASAN_MODULE_TEST is not set -CONFIG_KASAN_STACK=y -# CONFIG_KCMP is not set -# CONFIG_KCOV is not set -CONFIG_KCOV_IRQ_AREA_SIZE=0x40000 -# CONFIG_KCSAN is not set -# CONFIG_KERNEL_BZIP2 is not set -# CONFIG_KERNEL_CAT is not set -# CONFIG_KERNEL_GZIP is not set -# CONFIG_KERNEL_LZ4 is not set -# CONFIG_KERNEL_LZMA is not set -# CONFIG_KERNEL_LZO is not set -CONFIG_KERNEL_MODE_NEON=y -CONFIG_KERNEL_XZ=y -# CONFIG_KERNEL_ZSTD is not set -CONFIG_KERNFS=y -# CONFIG_KEXEC is not set -# CONFIG_KEXEC_FILE is not set -# CONFIG_KEXEC_SIG is not set -# CONFIG_KEYBOARD_ADC is not set -# CONFIG_KEYBOARD_ADP5588 is not set -# CONFIG_KEYBOARD_ADP5589 is not set -# CONFIG_KEYBOARD_APPLESPI is not set -# CONFIG_KEYBOARD_ATKBD is not set -# CONFIG_KEYBOARD_BCM is not set -# CONFIG_KEYBOARD_CAP11XX is not set -# CONFIG_KEYBOARD_CYPRESS_SF is not set -# CONFIG_KEYBOARD_DLINK_DIR685 is not set -# CONFIG_KEYBOARD_GPIO is not set -# CONFIG_KEYBOARD_GPIO_POLLED is not set -# CONFIG_KEYBOARD_LKKBD is not set -# CONFIG_KEYBOARD_LM8323 is not set -# CONFIG_KEYBOARD_LM8333 is not set -# CONFIG_KEYBOARD_MATRIX is not set -# CONFIG_KEYBOARD_MAX7359 is not set -# CONFIG_KEYBOARD_MCS is not set -# CONFIG_KEYBOARD_MPR121 is not set -# CONFIG_KEYBOARD_NEWTON is not set -# CONFIG_KEYBOARD_OMAP4 is not set -# CONFIG_KEYBOARD_OPENCORES is not set -# CONFIG_KEYBOARD_PINEPHONE is not set -# CONFIG_KEYBOARD_PXA27x is not set -# CONFIG_KEYBOARD_QT1050 is not set -# CONFIG_KEYBOARD_QT1070 is not set -# CONFIG_KEYBOARD_QT2160 is not set -# CONFIG_KEYBOARD_SAMSUNG is not set -# CONFIG_KEYBOARD_SH_KEYSC is not set -# CONFIG_KEYBOARD_SNVS_PWRKEY is not set -# CONFIG_KEYBOARD_STMPE is not set -# CONFIG_KEYBOARD_STOWAWAY is not set -# CONFIG_KEYBOARD_SUNKBD is not set -# CONFIG_KEYBOARD_TCA6416 is not set -# CONFIG_KEYBOARD_TCA8418 is not set -# CONFIG_KEYBOARD_TEGRA is not set -# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set -# CONFIG_KEYBOARD_TWL4030 is not set -# CONFIG_KEYBOARD_XTKBD is not set -# CONFIG_KEYS is not set -# CONFIG_KEYS_REQUEST_CACHE is not set -# CONFIG_KEY_DH_OPERATIONS is not set -# CONFIG_KFENCE is not set -# CONFIG_KGDB is not set -# CONFIG_KMEMCHECK is not set -# CONFIG_KMX61 is not set -# CONFIG_KPC2000 is not set -# CONFIG_KPROBES is not set -# CONFIG_KPROBES_SANITY_TEST is not set -# CONFIG_KPROBE_EVENTS_ON_NOTRACE is not set -# CONFIG_KPROBE_EVENT_GEN_TEST is not set -# CONFIG_KS7010 is not set -# CONFIG_KS8842 is not set -# CONFIG_KS8851 is not set -# CONFIG_KS8851_MLL is not set -# CONFIG_KSM is not set -# CONFIG_KSZ884X_PCI is not set -# CONFIG_KUNIT is not set -CONFIG_KUSER_HELPERS=y -# CONFIG_KVM_AMD is not set -# CONFIG_KVM_AMD_SEV is not set -# CONFIG_KVM_GUEST is not set -# CONFIG_KVM_INTEL is not set -# CONFIG_KVM_PROVE_MMU is not set -# CONFIG_KVM_SMM is not set -# CONFIG_KVM_WERROR is not set -# CONFIG_KVM_XEN is not set -# CONFIG_KXCJK1013 is not set -# CONFIG_KXSD9 is not set -# CONFIG_L2TP is not set -# CONFIG_L2TP_ETH is not set -# CONFIG_L2TP_IP is not set -# CONFIG_L2TP_V3 is not set -# CONFIG_LAN743X is not set -# CONFIG_LAN966X_SWITCH is not set -# CONFIG_LANMEDIA is not set -# CONFIG_LANTIQ is not set -# CONFIG_LAPB is not set -# CONFIG_LASAT is not set -# CONFIG_LATENCYTOP is not set -# CONFIG_LATTICE_ECP3_CONFIG is not set -CONFIG_LBDAF=y -# CONFIG_LCD_AMS369FG06 is not set -# CONFIG_LCD_CLASS_DEVICE is not set -# CONFIG_LCD_HX8357 is not set -# CONFIG_LCD_ILI922X is not set -# CONFIG_LCD_ILI9320 is not set -# CONFIG_LCD_L4F00242T03 is not set -# CONFIG_LCD_LD9040 is not set -# CONFIG_LCD_LMS283GF05 is not set -# CONFIG_LCD_LMS501KF03 is not set -# CONFIG_LCD_LTV350QV is not set -# CONFIG_LCD_OTM3225A is not set -# CONFIG_LCD_S6E63M0 is not set -# CONFIG_LCD_TDO24M is not set -# CONFIG_LCD_VGG2432A4 is not set -CONFIG_LDISC_AUTOLOAD=y -# CONFIG_LDM_PARTITION is not set -CONFIG_LD_DEAD_CODE_DATA_ELIMINATION=y -# CONFIG_LD_HEAD_STUB_CATCH is not set -# CONFIG_LEDS_AN30259A is not set -# CONFIG_LEDS_APU is not set -# CONFIG_LEDS_AW2013 is not set -# CONFIG_LEDS_BCM6328 is not set -# CONFIG_LEDS_BCM6358 is not set -# CONFIG_LEDS_BD2802 is not set -# CONFIG_LEDS_BLINKM is not set -CONFIG_LEDS_BRIGHTNESS_HW_CHANGED=y -CONFIG_LEDS_CLASS=y -# CONFIG_LEDS_CLASS_FLASH is not set -CONFIG_LEDS_CLASS_MULTICOLOR=y -# CONFIG_LEDS_CR0014114 is not set -# CONFIG_LEDS_DAC124S085 is not set -# CONFIG_LEDS_EL15203000 is not set -# CONFIG_LEDS_GPIO is not set -# CONFIG_LEDS_INTEL_SS4200 is not set -# CONFIG_LEDS_IS31FL319X is not set -# CONFIG_LEDS_IS31FL32XX is not set -# CONFIG_LEDS_LM3530 is not set -# CONFIG_LEDS_LM3532 is not set -# CONFIG_LEDS_LM355x is not set -# CONFIG_LEDS_LM3642 is not set -# CONFIG_LEDS_LM3692X is not set -# CONFIG_LEDS_LP3944 is not set -# CONFIG_LEDS_LP3952 is not set -# CONFIG_LEDS_LP50XX is not set -# CONFIG_LEDS_LP5521 is not set -# CONFIG_LEDS_LP5523 is not set -# CONFIG_LEDS_LP5562 is not set -# CONFIG_LEDS_LP55XX_COMMON is not set -# CONFIG_LEDS_LP8501 is not set -# CONFIG_LEDS_LP8860 is not set -# CONFIG_LEDS_LT3593 is not set -# CONFIG_LEDS_MLXCPLD is not set -# CONFIG_LEDS_MLXREG is not set -# CONFIG_LEDS_NIC78BX is not set -# CONFIG_LEDS_NS2 is not set -# CONFIG_LEDS_OT200 is not set -# CONFIG_LEDS_PCA9532 is not set -# CONFIG_LEDS_PCA955X is not set -# CONFIG_LEDS_PCA963X is not set -# CONFIG_LEDS_PWM is not set -# CONFIG_LEDS_PWM_MULTICOLOR is not set -# CONFIG_LEDS_REGULATOR is not set -# CONFIG_LEDS_SPI_BYTE is not set -# CONFIG_LEDS_SYSCON is not set -# CONFIG_LEDS_TCA6507 is not set -# CONFIG_LEDS_TI_LMU_COMMON is not set -# CONFIG_LEDS_TLC591XX is not set -CONFIG_LEDS_TRIGGERS=y -# CONFIG_LEDS_TRIGGER_ACTIVITY is not set -# CONFIG_LEDS_TRIGGER_AUDIO is not set -# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set -# CONFIG_LEDS_TRIGGER_CAMERA is not set -# CONFIG_LEDS_TRIGGER_CPU is not set -CONFIG_LEDS_TRIGGER_DEFAULT_ON=y -# CONFIG_LEDS_TRIGGER_DISK is not set -# CONFIG_LEDS_TRIGGER_GPIO is not set -CONFIG_LEDS_TRIGGER_HEARTBEAT=y -# CONFIG_LEDS_TRIGGER_MTD is not set -CONFIG_LEDS_TRIGGER_NETDEV=y -# CONFIG_LEDS_TRIGGER_ONESHOT is not set -# CONFIG_LEDS_TRIGGER_PANIC is not set -# CONFIG_LEDS_TRIGGER_PATTERN is not set -CONFIG_LEDS_TRIGGER_TIMER=y -# CONFIG_LEDS_TRIGGER_TRANSIENT is not set -# CONFIG_LEDS_TRIGGER_TTY is not set -# CONFIG_LEDS_TURRIS_OMNIA is not set -# CONFIG_LEDS_USER is not set -# CONFIG_LED_TRIGGER_PHY is not set -# CONFIG_LEGACY_PTYS is not set -# CONFIG_LG_LAPTOP is not set -# CONFIG_LGUEST is not set -# CONFIG_LIB80211 is not set -# CONFIG_LIB80211_CRYPT_CCMP is not set -# CONFIG_LIB80211_CRYPT_TKIP is not set -# CONFIG_LIB80211_CRYPT_WEP is not set -# CONFIG_LIB80211_DEBUG is not set -# CONFIG_LIBCRC32C is not set -# CONFIG_LIBERTAS is not set -# CONFIG_LIBERTAS_THINFIRM is not set -# CONFIG_LIBERTAS_USB is not set -# CONFIG_LIBFC is not set -# CONFIG_LIBFCOE is not set -# CONFIG_LIBIPW_DEBUG is not set -# CONFIG_LIBNVDIMM is not set -CONFIG_LIB_MEMNEQ=y -# CONFIG_LIDAR_LITE_V2 is not set -CONFIG_LINEAR_RANGES=y -# CONFIG_LIQUIDIO is not set -# CONFIG_LIQUIDIO_VF is not set -# CONFIG_LIRC is not set -# CONFIG_LIS3L02DQ is not set -# CONFIG_LITEX_LITEETH is not set -# CONFIG_LITEX_SOC_CONTROLLER is not set -# CONFIG_LIVEPATCH is not set -# CONFIG_LKDTM is not set -CONFIG_LLC=y -# CONFIG_LLC2 is not set -# CONFIG_LMK04832 is not set -# CONFIG_LMP91000 is not set -# CONFIG_LNET is not set -CONFIG_LOCALVERSION="" -# CONFIG_LOCALVERSION_AUTO is not set -# CONFIG_LOCKD is not set -CONFIG_LOCKDEP_BITS=15 -CONFIG_LOCKDEP_CHAINS_BITS=16 -CONFIG_LOCKDEP_CIRCULAR_QUEUE_BITS=12 -CONFIG_LOCKDEP_STACK_TRACE_BITS=19 -CONFIG_LOCKDEP_STACK_TRACE_HASH_BITS=14 -CONFIG_LOCKDEP_SUPPORT=y -CONFIG_LOCKD_V4=y -# CONFIG_LOCKUP_DETECTOR is not set -# CONFIG_LOCK_EVENT_COUNTS is not set -# CONFIG_LOCK_STAT is not set -# CONFIG_LOCK_TORTURE_TEST is not set -# CONFIG_LOGFS is not set -# CONFIG_LOGIG940_FF is not set -# CONFIG_LOGIRUMBLEPAD2_FF is not set -# CONFIG_LOGITECH_FF is not set -# CONFIG_LOGIWHEELS_FF is not set -# CONFIG_LOGO is not set -CONFIG_LOG_BUF_SHIFT=17 -CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 -# CONFIG_LOONGSON_MC146818 is not set -# CONFIG_LPC_ICH is not set -# CONFIG_LPC_SCH is not set -# CONFIG_LP_CONSOLE is not set -CONFIG_LRU_GEN=y -CONFIG_LRU_GEN_ENABLED=y -# CONFIG_LRU_GEN_STATS is not set -# CONFIG_LSI_ET1011C_PHY is not set -CONFIG_LSM="lockdown,yama,loadpin,safesetid,integrity" -CONFIG_LSM_MMAP_MIN_ADDR=65536 -# CONFIG_LTC1660 is not set -# CONFIG_LTC2471 is not set -# CONFIG_LTC2485 is not set -# CONFIG_LTC2496 is not set -# CONFIG_LTC2497 is not set -# CONFIG_LTC2632 is not set -# CONFIG_LTC2688 is not set -# CONFIG_LTC2983 is not set -# CONFIG_LTE_GDM724X is not set -CONFIG_LTO_NONE=y -# CONFIG_LTPC is not set -# CONFIG_LTR501 is not set -# CONFIG_LTRF216A is not set -# CONFIG_LUSTRE_FS is not set -# CONFIG_LV0104CS is not set -# CONFIG_LWTUNNEL is not set -# CONFIG_LXT_PHY is not set -# CONFIG_LZ4HC_COMPRESS is not set -# CONFIG_LZ4_COMPRESS is not set -# CONFIG_LZ4_DECOMPRESS is not set -CONFIG_LZMA_COMPRESS=y -CONFIG_LZMA_DECOMPRESS=y -# CONFIG_LZO_COMPRESS is not set -# CONFIG_LZO_DECOMPRESS is not set -# CONFIG_M62332 is not set -# CONFIG_MAC80211 is not set -# CONFIG_MAC80211_MESSAGE_TRACING is not set -CONFIG_MAC80211_STA_HASH_MAX_SIZE=0 -# CONFIG_MACB is not set -# CONFIG_MACH_ASM9260 is not set -# CONFIG_MACH_DECSTATION is not set -# CONFIG_MACH_INGENIC is not set -# CONFIG_MACH_INGENIC_SOC is not set -# CONFIG_MACH_JAZZ is not set -# CONFIG_MACH_JZ4740 is not set -# CONFIG_MACH_LOONGSON2EF is not set -# CONFIG_MACH_LOONGSON32 is not set -# CONFIG_MACH_LOONGSON64 is not set -# CONFIG_MACH_NINTENDO64 is not set -# CONFIG_MACH_PIC32 is not set -# CONFIG_MACH_PISTACHIO is not set -# CONFIG_MACH_REALTEK_RTL is not set -# CONFIG_MACH_TX39XX is not set -# CONFIG_MACH_TX49XX is not set -# CONFIG_MACH_VR41XX is not set -# CONFIG_MACH_XILFPGA is not set -# CONFIG_MACINTOSH_DRIVERS is not set -# CONFIG_MACSEC is not set -# CONFIG_MACVLAN is not set -# CONFIG_MACVTAP is not set -# CONFIG_MAC_EMUMOUSEBTN is not set -# CONFIG_MAC_PARTITION is not set -# CONFIG_MAG3110 is not set -# CONFIG_MAGIC_SYSRQ is not set -CONFIG_MAGIC_SYSRQ_DEFAULT_ENABLE=0x1 -# CONFIG_MAGIC_SYSRQ_SERIAL is not set -CONFIG_MAGIC_SYSRQ_SERIAL_SEQUENCE="" -# CONFIG_MAILBOX is not set -# CONFIG_MANAGER_SBS is not set -# CONFIG_MANDATORY_FILE_LOCKING is not set -# CONFIG_MANGLE_BOOTARGS is not set -# CONFIG_MARVELL_10G_PHY is not set -# CONFIG_MARVELL_88X2222_PHY is not set -# CONFIG_MARVELL_PHY is not set -# CONFIG_MAX1027 is not set -# CONFIG_MAX11100 is not set -# CONFIG_MAX1118 is not set -# CONFIG_MAX11205 is not set -# CONFIG_MAX1241 is not set -# CONFIG_MAX1363 is not set -# CONFIG_MAX30100 is not set -# CONFIG_MAX30102 is not set -# CONFIG_MAX31856 is not set -# CONFIG_MAX31865 is not set -# CONFIG_MAX44000 is not set -# CONFIG_MAX44009 is not set -# CONFIG_MAX517 is not set -# CONFIG_MAX5432 is not set -# CONFIG_MAX5481 is not set -# CONFIG_MAX5487 is not set -# CONFIG_MAX5821 is not set -# CONFIG_MAX63XX_WATCHDOG is not set -# CONFIG_MAX9611 is not set -# CONFIG_MAXIM_THERMOCOUPLE is not set -# CONFIG_MAXLINEAR_GPHY is not set -CONFIG_MAX_SKB_FRAGS=17 -CONFIG_MAY_USE_DEVLINK=y -# CONFIG_MB1232 is not set -# CONFIG_MC3230 is not set -# CONFIG_MCB is not set -# CONFIG_MCP320X is not set -# CONFIG_MCP3422 is not set -# CONFIG_MCP3911 is not set -# CONFIG_MCP4018 is not set -# CONFIG_MCP41010 is not set -# CONFIG_MCP4131 is not set -# CONFIG_MCP4531 is not set -# CONFIG_MCP4725 is not set -# CONFIG_MCP4922 is not set -# CONFIG_MCPM is not set -# CONFIG_MCTP is not set -# CONFIG_MD is not set -# CONFIG_MDIO_BCM_UNIMAC is not set -# CONFIG_MDIO_BITBANG is not set -# CONFIG_MDIO_BUS_MUX_GPIO is not set -# CONFIG_MDIO_BUS_MUX_MMIOREG is not set -# CONFIG_MDIO_BUS_MUX_MULTIPLEXER is not set -# CONFIG_MDIO_DEVICE is not set -# CONFIG_MDIO_DEVRES is not set -# CONFIG_MDIO_HISI_FEMAC is not set -# CONFIG_MDIO_IPQ4019 is not set -# CONFIG_MDIO_IPQ8064 is not set -# CONFIG_MDIO_MSCC_MIIM is not set -# CONFIG_MDIO_MVUSB is not set -# CONFIG_MDIO_OCTEON is not set -# CONFIG_MDIO_THUNDER is not set -# CONFIG_MDIO_XPCS is not set -# CONFIG_MDM_GCC_9607 is not set -# CONFIG_MD_FAULTY is not set -# CONFIG_MEDIATEK_GE_PHY is not set -# CONFIG_MEDIATEK_MT6577_AUXADC is not set -# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set -# CONFIG_MEDIA_ATTACH is not set -# CONFIG_MEDIA_CAMERA_SUPPORT is not set -# CONFIG_MEDIA_CEC_SUPPORT is not set -# CONFIG_MEDIA_CONTROLLER is not set -# CONFIG_MEDIA_CONTROLLER_DVB is not set -# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set -# CONFIG_MEDIA_PCI_SUPPORT is not set -# CONFIG_MEDIA_PLATFORM_DRIVERS is not set -# CONFIG_MEDIA_PLATFORM_SUPPORT is not set -# CONFIG_MEDIA_RADIO_SUPPORT is not set -# CONFIG_MEDIA_RC_SUPPORT is not set -# CONFIG_MEDIA_SDR_SUPPORT is not set -# CONFIG_MEDIA_SUBDRV_AUTOSELECT is not set -# CONFIG_MEDIA_SUPPORT is not set -# CONFIG_MEDIA_SUPPORT_FILTER is not set -# CONFIG_MEDIA_TEST_SUPPORT is not set -# CONFIG_MEDIA_TUNER_E4000 is not set -# CONFIG_MEDIA_TUNER_FC0011 is not set -# CONFIG_MEDIA_TUNER_FC0012 is not set -# CONFIG_MEDIA_TUNER_FC0013 is not set -# CONFIG_MEDIA_TUNER_FC2580 is not set -# CONFIG_MEDIA_TUNER_IT913X is not set -# CONFIG_MEDIA_TUNER_M88RS6000T is not set -# CONFIG_MEDIA_TUNER_MAX2165 is not set -# CONFIG_MEDIA_TUNER_MC44S803 is not set -# CONFIG_MEDIA_TUNER_MSI001 is not set -# CONFIG_MEDIA_TUNER_MT2060 is not set -# CONFIG_MEDIA_TUNER_MT2063 is not set -# CONFIG_MEDIA_TUNER_MT20XX is not set -# CONFIG_MEDIA_TUNER_MT2131 is not set -# CONFIG_MEDIA_TUNER_MT2266 is not set -# CONFIG_MEDIA_TUNER_MXL301RF is not set -# CONFIG_MEDIA_TUNER_MXL5005S is not set -# CONFIG_MEDIA_TUNER_MXL5007T is not set -# CONFIG_MEDIA_TUNER_QM1D1B0004 is not set -# CONFIG_MEDIA_TUNER_QM1D1C0042 is not set -# CONFIG_MEDIA_TUNER_QT1010 is not set -# CONFIG_MEDIA_TUNER_R820T is not set -# CONFIG_MEDIA_TUNER_SI2157 is not set -# CONFIG_MEDIA_TUNER_SIMPLE is not set -# CONFIG_MEDIA_TUNER_TDA18212 is not set -# CONFIG_MEDIA_TUNER_TDA18218 is not set -# CONFIG_MEDIA_TUNER_TDA18250 is not set -# CONFIG_MEDIA_TUNER_TDA18271 is not set -# CONFIG_MEDIA_TUNER_TDA827X is not set -# CONFIG_MEDIA_TUNER_TDA8290 is not set -# CONFIG_MEDIA_TUNER_TDA9887 is not set -# CONFIG_MEDIA_TUNER_TEA5761 is not set -# CONFIG_MEDIA_TUNER_TEA5767 is not set -# CONFIG_MEDIA_TUNER_TUA9001 is not set -# CONFIG_MEDIA_TUNER_XC2028 is not set -# CONFIG_MEDIA_TUNER_XC4000 is not set -# CONFIG_MEDIA_TUNER_XC5000 is not set -# CONFIG_MEDIA_USB_SUPPORT is not set -# CONFIG_MEGARAID_LEGACY is not set -# CONFIG_MEGARAID_NEWGEN is not set -# CONFIG_MEGARAID_SAS is not set -# CONFIG_MELLANOX_PLATFORM is not set -CONFIG_MEMBARRIER=y -# CONFIG_MEMORY is not set -# CONFIG_MEMORY_FAILURE is not set -# CONFIG_MEMORY_HOTPLUG is not set -# CONFIG_MEMSTICK is not set -# CONFIG_MEMTEST is not set -# CONFIG_MEN_A21_WDT is not set -# CONFIG_MESON_SM is not set -CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 -# CONFIG_MFD_88PM800 is not set -# CONFIG_MFD_88PM805 is not set -# CONFIG_MFD_88PM860X is not set -# CONFIG_MFD_AAT2870_CORE is not set -# CONFIG_MFD_AC100 is not set -# CONFIG_MFD_ACT8945A is not set -# CONFIG_MFD_ARIZONA_I2C is not set -# CONFIG_MFD_ARIZONA_SPI is not set -# CONFIG_MFD_AS3711 is not set -# CONFIG_MFD_AS3722 is not set -# CONFIG_MFD_ASIC3 is not set -# CONFIG_MFD_ATC260X_I2C is not set -# CONFIG_MFD_ATMEL_FLEXCOM is not set -# CONFIG_MFD_ATMEL_HLCDC is not set -# CONFIG_MFD_AXP20X is not set -# CONFIG_MFD_AXP20X_I2C is not set -# CONFIG_MFD_BCM590XX is not set -# CONFIG_MFD_BD9571MWV is not set -# CONFIG_MFD_CORE is not set -# CONFIG_MFD_CPCAP is not set -# CONFIG_MFD_CROS_EC is not set -# CONFIG_MFD_CS5535 is not set -# CONFIG_MFD_DA9052_I2C is not set -# CONFIG_MFD_DA9052_SPI is not set -# CONFIG_MFD_DA9055 is not set -# CONFIG_MFD_DA9062 is not set -# CONFIG_MFD_DA9063 is not set -# CONFIG_MFD_DA9150 is not set -# CONFIG_MFD_DLN2 is not set -# CONFIG_MFD_EXYNOS_LPASS is not set -# CONFIG_MFD_GATEWORKS_GSC is not set -# CONFIG_MFD_HI6421_PMIC is not set -# CONFIG_MFD_INTEL_M10_BMC is not set -# CONFIG_MFD_INTEL_PMT is not set -# CONFIG_MFD_INTEL_QUARK_I2C_GPIO is not set -# CONFIG_MFD_IQS62X is not set -# CONFIG_MFD_JANZ_CMODIO is not set -# CONFIG_MFD_KEMPLD is not set -# CONFIG_MFD_LM3533 is not set -# CONFIG_MFD_LOCHNAGAR is not set -# CONFIG_MFD_LP3943 is not set -# CONFIG_MFD_LP8788 is not set -# CONFIG_MFD_MADERA is not set -# CONFIG_MFD_MAX14577 is not set -# CONFIG_MFD_MAX77620 is not set -# CONFIG_MFD_MAX77650 is not set -# CONFIG_MFD_MAX77686 is not set -# CONFIG_MFD_MAX77693 is not set -# CONFIG_MFD_MAX77714 is not set -# CONFIG_MFD_MAX77843 is not set -# CONFIG_MFD_MAX8907 is not set -# CONFIG_MFD_MAX8925 is not set -# CONFIG_MFD_MAX8997 is not set -# CONFIG_MFD_MAX8998 is not set -# CONFIG_MFD_MC13XXX is not set -# CONFIG_MFD_MC13XXX_I2C is not set -# CONFIG_MFD_MC13XXX_SPI is not set -# CONFIG_MFD_MENF21BMC is not set -# CONFIG_MFD_MP2629 is not set -# CONFIG_MFD_MT6360 is not set -# CONFIG_MFD_MT6370 is not set -# CONFIG_MFD_MT6397 is not set -# CONFIG_MFD_NTXEC is not set -# CONFIG_MFD_OCELOT is not set -# CONFIG_MFD_OMAP_USB_HOST is not set -# CONFIG_MFD_PALMAS is not set -# CONFIG_MFD_PCF50633 is not set -# CONFIG_MFD_PM8921_CORE is not set -# CONFIG_MFD_PM8XXX is not set -# CONFIG_MFD_QCOM_PM8008 is not set -# CONFIG_MFD_RC5T583 is not set -# CONFIG_MFD_RDC321X is not set -# CONFIG_MFD_RETU is not set -# CONFIG_MFD_RK808 is not set -# CONFIG_MFD_RN5T618 is not set -# CONFIG_MFD_ROHM_BD70528 is not set -# CONFIG_MFD_ROHM_BD71828 is not set -# CONFIG_MFD_ROHM_BD718XX is not set -# CONFIG_MFD_ROHM_BD957XMUF is not set -# CONFIG_MFD_RSMU_I2C is not set -# CONFIG_MFD_RSMU_SPI is not set -# CONFIG_MFD_RT4831 is not set -# CONFIG_MFD_RT5033 is not set -# CONFIG_MFD_RT5120 is not set -# CONFIG_MFD_RTSX_PCI is not set -# CONFIG_MFD_RTSX_USB is not set -# CONFIG_MFD_SEC_CORE is not set -# CONFIG_MFD_SI476X_CORE is not set -# CONFIG_MFD_SKY81452 is not set -# CONFIG_MFD_SL28CPLD is not set -# CONFIG_MFD_SM501 is not set -# CONFIG_MFD_SMSC is not set -# CONFIG_MFD_STMFX is not set -# CONFIG_MFD_STMPE is not set -# CONFIG_MFD_STPMIC1 is not set -# CONFIG_MFD_SY7636A is not set -# CONFIG_MFD_SYSCON is not set -# CONFIG_MFD_T7L66XB is not set -# CONFIG_MFD_TC3589X is not set -# CONFIG_MFD_TC6387XB is not set -# CONFIG_MFD_TC6393XB is not set -# CONFIG_MFD_TIMBERDALE is not set -# CONFIG_MFD_TI_AM335X_TSCADC is not set -# CONFIG_MFD_TI_LMU is not set -# CONFIG_MFD_TI_LP873X is not set -# CONFIG_MFD_TI_LP87565 is not set -# CONFIG_MFD_TMIO is not set -# CONFIG_MFD_TPS65086 is not set -# CONFIG_MFD_TPS65090 is not set -# CONFIG_MFD_TPS65217 is not set -# CONFIG_MFD_TPS65218 is not set -# CONFIG_MFD_TPS6586X is not set -# CONFIG_MFD_TPS65910 is not set -# CONFIG_MFD_TPS65912 is not set -# CONFIG_MFD_TPS65912_I2C is not set -# CONFIG_MFD_TPS65912_SPI is not set -# CONFIG_MFD_TPS68470 is not set -# CONFIG_MFD_TPS80031 is not set -# CONFIG_MFD_TQMX86 is not set -# CONFIG_MFD_VIPERBOARD is not set -# CONFIG_MFD_VX855 is not set -# CONFIG_MFD_WL1273_CORE is not set -# CONFIG_MFD_WM831X is not set -# CONFIG_MFD_WM831X_I2C is not set -# CONFIG_MFD_WM831X_SPI is not set -# CONFIG_MFD_WM8350_I2C is not set -# CONFIG_MFD_WM8400 is not set -# CONFIG_MFD_WM8994 is not set -# CONFIG_MG_DISK is not set -# CONFIG_MHI_BUS is not set -# CONFIG_MHI_BUS_DEBUG is not set -# CONFIG_MHI_BUS_EP is not set -# CONFIG_MHI_BUS_PCI_GENERIC is not set -# CONFIG_MHI_NET is not set -# CONFIG_MHI_WWAN_CTRL is not set -# CONFIG_MHI_WWAN_MBIM is not set -# CONFIG_MICREL_KS8995MA is not set -# CONFIG_MICREL_PHY is not set -# CONFIG_MICROCHIP_KSZ is not set -# CONFIG_MICROCHIP_PHY is not set -# CONFIG_MICROCHIP_PIT64B is not set -# CONFIG_MICROCHIP_T1_PHY is not set -# CONFIG_MICROSEMI_PHY is not set -# CONFIG_MIGRATION is not set -CONFIG_MII=y -# CONFIG_MIKROTIK is not set -# CONFIG_MIKROTIK_RB532 is not set -# CONFIG_MINIX_FS is not set -# CONFIG_MINIX_FS_NATIVE_ENDIAN is not set -# CONFIG_MINIX_SUBPARTITION is not set -# CONFIG_MIPS32_N32 is not set -# CONFIG_MIPS32_O32 is not set -# CONFIG_MIPS_ALCHEMY is not set -# CONFIG_MIPS_CDMM is not set -# CONFIG_MIPS_CMDLINE_DTB_EXTEND is not set -# CONFIG_MIPS_CMDLINE_FROM_DTB is not set -# CONFIG_MIPS_CMP is not set -# CONFIG_MIPS_COBALT is not set -# CONFIG_MIPS_CPS is not set -# CONFIG_MIPS_ELF_APPENDED_DTB is not set -# CONFIG_MIPS_FPU_EMULATOR is not set -# CONFIG_MIPS_FP_SUPPORT is not set -# CONFIG_MIPS_GENERIC is not set -# CONFIG_MIPS_GENERIC_KERNEL is not set -# CONFIG_MIPS_MALTA is not set -# CONFIG_MIPS_O32_FP64_SUPPORT is not set -# CONFIG_MIPS_PARAVIRT is not set -# CONFIG_MIPS_PLATFORM_DEVICES is not set -# CONFIG_MIPS_RAW_APPENDED_DTB is not set -# CONFIG_MIPS_SEAD3 is not set -# CONFIG_MIPS_VA_BITS_48 is not set -# CONFIG_MIPS_VPE_LOADER is not set -# CONFIG_MISC_ALCOR_PCI is not set -CONFIG_MISC_FILESYSTEMS=y -# CONFIG_MISC_RTSX_PCI is not set -# CONFIG_MISC_RTSX_USB is not set -# CONFIG_MISDN is not set -# CONFIG_MISDN_AVMFRITZ is not set -# CONFIG_MISDN_HFCPCI is not set -# CONFIG_MISDN_HFCUSB is not set -# CONFIG_MISDN_INFINEON is not set -# CONFIG_MISDN_NETJET is not set -# CONFIG_MISDN_SPEEDFAX is not set -# CONFIG_MISDN_W6692 is not set -CONFIG_MITIGATE_SPECTRE_BRANCH_HISTORY=y -# CONFIG_MKISS is not set -# CONFIG_MLX4_CORE is not set -# CONFIG_MLX4_EN is not set -# CONFIG_MLX5_CORE is not set -# CONFIG_MLX5_EN_MACSEC is not set -# CONFIG_MLX5_SF is not set -# CONFIG_MLX5_VFIO_PCI is not set -# CONFIG_MLX90614 is not set -# CONFIG_MLX90632 is not set -# CONFIG_MLXFW is not set -# CONFIG_MLXSW_CORE is not set -# CONFIG_MLX_CPLD_PLATFORM is not set -# CONFIG_MLX_PLATFORM is not set -# CONFIG_MMA7455_I2C is not set -# CONFIG_MMA7455_SPI is not set -# CONFIG_MMA7660 is not set -# CONFIG_MMA8452 is not set -# CONFIG_MMA9551 is not set -# CONFIG_MMA9553 is not set -# CONFIG_MMC is not set -# CONFIG_MMC35240 is not set -# CONFIG_MMC_ARMMMCI is not set -# CONFIG_MMC_AU1X is not set -# CONFIG_MMC_BLOCK is not set -CONFIG_MMC_BLOCK_BOUNCE=y -CONFIG_MMC_BLOCK_MINORS=8 -# CONFIG_MMC_CAVIUM_THUNDERX is not set -# CONFIG_MMC_CB710 is not set -# CONFIG_MMC_CQHCI is not set -# CONFIG_MMC_DEBUG is not set -# CONFIG_MMC_DW is not set -# CONFIG_MMC_HSQ is not set -# CONFIG_MMC_JZ4740 is not set -# CONFIG_MMC_MTK is not set -# CONFIG_MMC_MVSDIO is not set -# CONFIG_MMC_S3C is not set -# CONFIG_MMC_SDHCI is not set -# CONFIG_MMC_SDHCI_ACPI is not set -# CONFIG_MMC_SDHCI_AM654 is not set -# CONFIG_MMC_SDHCI_BCM_KONA is not set -# CONFIG_MMC_SDHCI_BRCMSTB is not set -# CONFIG_MMC_SDHCI_CADENCE is not set -# CONFIG_MMC_SDHCI_F_SDH30 is not set -# CONFIG_MMC_SDHCI_IPROC is not set -# CONFIG_MMC_SDHCI_MILBEAUT is not set -# CONFIG_MMC_SDHCI_MSM is not set -# CONFIG_MMC_SDHCI_OF_ARASAN is not set -# CONFIG_MMC_SDHCI_OF_ASPEED is not set -# CONFIG_MMC_SDHCI_OF_AT91 is not set -# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set -# CONFIG_MMC_SDHCI_OF_ESDHC is not set -# CONFIG_MMC_SDHCI_OF_HLWD is not set -# CONFIG_MMC_SDHCI_OMAP is not set -# CONFIG_MMC_SDHCI_PXAV2 is not set -# CONFIG_MMC_SDHCI_PXAV3 is not set -# CONFIG_MMC_SDHCI_S3C is not set -# CONFIG_MMC_SDHCI_XENON is not set -# CONFIG_MMC_SDRICOH_CS is not set -# CONFIG_MMC_SPI is not set -# CONFIG_MMC_STM32_SDMMC is not set -# CONFIG_MMC_TEST is not set -# CONFIG_MMC_TIFM_SD is not set -# CONFIG_MMC_TOSHIBA_PCI is not set -# CONFIG_MMC_USDHI6ROL0 is not set -# CONFIG_MMC_USHC is not set -# CONFIG_MMC_VIA_SDMMC is not set -# CONFIG_MMC_VUB300 is not set -# CONFIG_MMIOTRACE is not set -CONFIG_MMU=y -CONFIG_MMU_GATHER_RCU_TABLE_FREE=y -CONFIG_MMU_GATHER_TABLE_FREE=y -CONFIG_MODPROBE_PATH="/sbin/modprobe" -CONFIG_MODULES=y -# CONFIG_MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS is not set -# CONFIG_MODULE_COMPRESS is not set -# CONFIG_MODULE_COMPRESS_GZIP is not set -CONFIG_MODULE_COMPRESS_NONE=y -# CONFIG_MODULE_COMPRESS_XZ is not set -# CONFIG_MODULE_COMPRESS_ZSTD is not set -# CONFIG_MODULE_DEBUG is not set -# CONFIG_MODULE_FORCE_LOAD is not set -# CONFIG_MODULE_FORCE_UNLOAD is not set -# CONFIG_MODULE_SIG is not set -# CONFIG_MODULE_SRCVERSION_ALL is not set -CONFIG_MODULE_STRIPPED=y -CONFIG_MODULE_UNLOAD=y -# CONFIG_MODULE_UNLOAD_TAINT_TRACKING is not set -# CONFIG_MODVERSIONS is not set -# CONFIG_MOST is not set -# CONFIG_MOTORCOMM_PHY is not set -# CONFIG_MOUSE_APPLETOUCH is not set -# CONFIG_MOUSE_ELAN_I2C is not set -# CONFIG_MOUSE_GPIO is not set -# CONFIG_MOUSE_INPORT is not set -# CONFIG_MOUSE_LOGIBM is not set -# CONFIG_MOUSE_PC110PAD is not set -# CONFIG_MOUSE_PS2_FOCALTECH is not set -# CONFIG_MOUSE_PS2_SENTELIC is not set -# CONFIG_MOUSE_SYNAPTICS_I2C is not set -# CONFIG_MOUSE_SYNAPTICS_USB is not set -# CONFIG_MOXTET is not set -# CONFIG_MPL115 is not set -# CONFIG_MPL115_I2C is not set -# CONFIG_MPL115_SPI is not set -# CONFIG_MPL3115 is not set -# CONFIG_MPLS is not set -# CONFIG_MPLS_IPTUNNEL is not set -# CONFIG_MPLS_ROUTING is not set -CONFIG_MPTCP=y -CONFIG_MPTCP_IPV6=y -# CONFIG_MPU3050_I2C is not set -# CONFIG_MQ_IOSCHED_DEADLINE is not set -# CONFIG_MQ_IOSCHED_KYBER is not set -# CONFIG_MS5611 is not set -# CONFIG_MS5637 is not set -# CONFIG_MSA311 is not set -# CONFIG_MSCC_OCELOT_SWITCH is not set -# CONFIG_MSDOS_FS is not set -CONFIG_MSDOS_PARTITION=y -# CONFIG_MSE102X is not set -# CONFIG_MSI_BITMAP_SELFTEST is not set -# CONFIG_MSI_LAPTOP is not set -# CONFIG_MSI_WMI is not set -# CONFIG_MSM_GCC_8953 is not set -# CONFIG_MSM_MMCC_8994 is not set -# CONFIG_MST_IRQ is not set -CONFIG_MTD=y -# CONFIG_MTD_ABSENT is not set -# CONFIG_MTD_AFS_PARTS is not set -# CONFIG_MTD_AR7_PARTS is not set -CONFIG_MTD_BLKDEVS=y -CONFIG_MTD_BLOCK=y -# CONFIG_MTD_BLOCK2MTD is not set -CONFIG_MTD_CFI=y -# CONFIG_MTD_CFI_ADV_OPTIONS is not set -CONFIG_MTD_CFI_AMDSTD=y -# CONFIG_MTD_CFI_BE_BYTE_SWAP is not set -CONFIG_MTD_CFI_I1=y -CONFIG_MTD_CFI_I2=y -# CONFIG_MTD_CFI_I4 is not set -# CONFIG_MTD_CFI_I8 is not set -CONFIG_MTD_CFI_INTELEXT=y -# CONFIG_MTD_CFI_LE_BYTE_SWAP is not set -CONFIG_MTD_CFI_NOSWAP=y -# CONFIG_MTD_CFI_STAA is not set -CONFIG_MTD_CFI_UTIL=y -# CONFIG_MTD_CMDLINE_PARTS is not set -CONFIG_MTD_COMPLEX_MAPPINGS=y -# CONFIG_MTD_DATAFLASH is not set -# CONFIG_MTD_DOCG3 is not set -CONFIG_MTD_GEN_PROBE=y -# CONFIG_MTD_GPIO_ADDR is not set -# CONFIG_MTD_HYPERBUS is not set -# CONFIG_MTD_IMPA7 is not set -# CONFIG_MTD_INTEL_VR_NOR is not set -# CONFIG_MTD_JEDECPROBE is not set -# CONFIG_MTD_LATCH_ADDR is not set -# CONFIG_MTD_LPDDR is not set -# CONFIG_MTD_LPDDR2_NVM is not set -# CONFIG_MTD_M25P80 is not set -CONFIG_MTD_MAP_BANK_WIDTH_1=y -# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set -CONFIG_MTD_MAP_BANK_WIDTH_2=y -# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set -CONFIG_MTD_MAP_BANK_WIDTH_4=y -# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set -# CONFIG_MTD_MCHP23K256 is not set -# CONFIG_MTD_MCHP48L640 is not set -# CONFIG_MTD_MT81xx_NOR is not set -# CONFIG_MTD_MTDRAM is not set -# CONFIG_MTD_MYLOADER_PARTS is not set -# CONFIG_MTD_NAND is not set -# CONFIG_MTD_NAND_AMS_DELTA is not set -# CONFIG_MTD_NAND_AR934X is not set -# CONFIG_MTD_NAND_AR934X_HW_ECC is not set -# CONFIG_MTD_NAND_ARASAN is not set -# CONFIG_MTD_NAND_ATMEL is not set -# CONFIG_MTD_NAND_AU1550 is not set -# CONFIG_MTD_NAND_BCH is not set -# CONFIG_MTD_NAND_BF5XX is not set -# CONFIG_MTD_NAND_BRCMNAND is not set -# CONFIG_MTD_NAND_BRCMNAND_BCM63XX is not set -# CONFIG_MTD_NAND_BRCMNAND_BCMBCA is not set -# CONFIG_MTD_NAND_BRCMNAND_BRCMSTB is not set -# CONFIG_MTD_NAND_BRCMNAND_IPROC is not set -# CONFIG_MTD_NAND_CADENCE is not set -# CONFIG_MTD_NAND_CAFE is not set -# CONFIG_MTD_NAND_CM_X270 is not set -# CONFIG_MTD_NAND_CS553X is not set -# CONFIG_MTD_NAND_DAVINCI is not set -# CONFIG_MTD_NAND_DENALI is not set -# CONFIG_MTD_NAND_DENALI_DT is not set -# CONFIG_MTD_NAND_DENALI_PCI is not set -CONFIG_MTD_NAND_DENALI_SCRATCH_REG_ADDR=0xff108018 -# CONFIG_MTD_NAND_DISKONCHIP is not set -# CONFIG_MTD_NAND_DOCG4 is not set -# CONFIG_MTD_NAND_ECC is not set -# CONFIG_MTD_NAND_ECC_BCH is not set -# CONFIG_MTD_NAND_ECC_MXIC is not set -# CONFIG_MTD_NAND_ECC_SMC is not set -# CONFIG_MTD_NAND_ECC_SW_BCH is not set -# CONFIG_MTD_NAND_ECC_SW_HAMMING is not set -# CONFIG_MTD_NAND_ECC_SW_HAMMING_SMC is not set -# CONFIG_MTD_NAND_FSL_ELBC is not set -# CONFIG_MTD_NAND_FSL_IFC is not set -# CONFIG_MTD_NAND_FSL_UPM is not set -# CONFIG_MTD_NAND_FSMC is not set -# CONFIG_MTD_NAND_GPIO is not set -# CONFIG_MTD_NAND_GPMI_NAND is not set -# CONFIG_MTD_NAND_HISI504 is not set -CONFIG_MTD_NAND_IDS=y -# CONFIG_MTD_NAND_INTEL_LGM is not set -# CONFIG_MTD_NAND_JZ4740 is not set -# CONFIG_MTD_NAND_MPC5121_NFC is not set -# CONFIG_MTD_NAND_MTK is not set -# CONFIG_MTD_NAND_MTK_BMT is not set -# CONFIG_MTD_NAND_MXC is not set -# CONFIG_MTD_NAND_MXIC is not set -# CONFIG_MTD_NAND_NANDSIM is not set -# CONFIG_MTD_NAND_NDFC is not set -# CONFIG_MTD_NAND_NUC900 is not set -# CONFIG_MTD_NAND_OMAP2 is not set -# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set -# CONFIG_MTD_NAND_ORION is not set -# CONFIG_MTD_NAND_PASEMI is not set -# CONFIG_MTD_NAND_PLATFORM is not set -# CONFIG_MTD_NAND_PXA3xx is not set -# CONFIG_MTD_NAND_RB4XX is not set -# CONFIG_MTD_NAND_RB750 is not set -# CONFIG_MTD_NAND_RB91X is not set -# CONFIG_MTD_NAND_RICOH is not set -# CONFIG_MTD_NAND_S3C2410 is not set -# CONFIG_MTD_NAND_SHARPSL is not set -# CONFIG_MTD_NAND_SH_FLCTL is not set -# CONFIG_MTD_NAND_SOCRATES is not set -# CONFIG_MTD_NAND_TMIO is not set -# CONFIG_MTD_NAND_TXX9NDFMC is not set -CONFIG_MTD_OF_PARTS=y -# CONFIG_MTD_ONENAND is not set -# CONFIG_MTD_OOPS is not set -# CONFIG_MTD_OTP is not set -# CONFIG_MTD_PARSER_TRX is not set -# CONFIG_MTD_PARTITIONED_MASTER is not set -# CONFIG_MTD_PCI is not set -# CONFIG_MTD_PCMCIA is not set -# CONFIG_MTD_PHRAM is not set -# CONFIG_MTD_PHYSMAP is not set -# CONFIG_MTD_PHYSMAP_COMPAT is not set -# CONFIG_MTD_PHYSMAP_GEMINI is not set -# CONFIG_MTD_PHYSMAP_GPIO_ADDR is not set -# CONFIG_MTD_PHYSMAP_IXP4XX is not set -CONFIG_MTD_PHYSMAP_OF=y -# CONFIG_MTD_PHYSMAP_OF_GEMINI is not set -# CONFIG_MTD_PHYSMAP_OF_VERSATILE is not set -# CONFIG_MTD_PHYSMAP_VERSATILE is not set -# CONFIG_MTD_PLATRAM is not set -# CONFIG_MTD_PMC551 is not set -# CONFIG_MTD_RAM is not set -# CONFIG_MTD_RAW_NAND is not set -CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 -# CONFIG_MTD_REDBOOT_PARTS is not set -# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set -# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set -# CONFIG_MTD_ROM is not set -CONFIG_MTD_ROOTFS_ROOT_DEV=y -# CONFIG_MTD_ROUTERBOOT_PARTS is not set -# CONFIG_MTD_SERCOMM_PARTS is not set -# CONFIG_MTD_SLRAM is not set -# CONFIG_MTD_SM_COMMON is not set -# CONFIG_MTD_SPINAND_MT29F is not set -# CONFIG_MTD_SPI_NAND is not set -# CONFIG_MTD_SPI_NOR is not set -# CONFIG_MTD_SPI_NOR_SWP_DISABLE is not set -CONFIG_MTD_SPI_NOR_SWP_DISABLE_ON_VOLATILE=y -# CONFIG_MTD_SPI_NOR_SWP_KEEP is not set -# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set -# CONFIG_MTD_SPI_NOR_USE_VARIABLE_ERASE is not set -CONFIG_MTD_SPLIT=y -# CONFIG_MTD_SPLIT_BCM63XX_FW is not set -# CONFIG_MTD_SPLIT_BCM_WFI_FW is not set -# CONFIG_MTD_SPLIT_BRNIMAGE_FW is not set -# CONFIG_MTD_SPLIT_ELF_FW is not set -# CONFIG_MTD_SPLIT_EVA_FW is not set -# CONFIG_MTD_SPLIT_FIRMWARE is not set -CONFIG_MTD_SPLIT_FIRMWARE_NAME="firmware" -# CONFIG_MTD_SPLIT_FIT_FW is not set -# CONFIG_MTD_SPLIT_H3C_VFS is not set -# CONFIG_MTD_SPLIT_JIMAGE_FW is not set -# CONFIG_MTD_SPLIT_LZMA_FW is not set -# CONFIG_MTD_SPLIT_MINOR_FW is not set -# CONFIG_MTD_SPLIT_SEAMA_FW is not set -CONFIG_MTD_SPLIT_SQUASHFS_ROOT=y -CONFIG_MTD_SPLIT_SUPPORT=y -# CONFIG_MTD_SPLIT_TPLINK_FW is not set -# CONFIG_MTD_SPLIT_TRX_FW is not set -# CONFIG_MTD_SPLIT_UIMAGE_FW is not set -# CONFIG_MTD_SPLIT_WRGG_FW is not set -# CONFIG_MTD_SST25L is not set -# CONFIG_MTD_SWAP is not set -# CONFIG_MTD_TESTS is not set -# CONFIG_MTD_UBI is not set -# CONFIG_MTD_UBI_FASTMAP is not set -# CONFIG_MTD_UBI_GLUEBI is not set -# CONFIG_MTD_UIMAGE_SPLIT is not set -# CONFIG_MTD_VIRT_CONCAT is not set -# CONFIG_MTK_DEVAPC is not set -# CONFIG_MTK_MMC is not set -# CONFIG_MTK_MMSYS is not set -# CONFIG_MTK_T7XX is not set -# CONFIG_MTK_THERMAL is not set -# CONFIG_MULTIPLEXER is not set -CONFIG_MULTIUSER=y -# CONFIG_MUTEX_SPIN_ON_OWNER is not set -# CONFIG_MUX_ADG792A is not set -# CONFIG_MUX_ADGS1408 is not set -# CONFIG_MUX_GPIO is not set -# CONFIG_MUX_MMIO is not set -# CONFIG_MV643XX_ETH is not set -# CONFIG_MVMDIO is not set -# CONFIG_MVNETA_BM is not set -# CONFIG_MVSW61XX_PHY is not set -# CONFIG_MV_XOR_V2 is not set -# CONFIG_MWAVE is not set -# CONFIG_MWL8K is not set -# CONFIG_MXC4005 is not set -# CONFIG_MXC6255 is not set -# CONFIG_MXM_WMI is not set -# CONFIG_MYRI10GE is not set -# CONFIG_NAMESPACES is not set -# CONFIG_NATIONAL_PHY is not set -# CONFIG_NATSEMI is not set -# CONFIG_NAU7802 is not set -# CONFIG_NBPFAXI_DMA is not set -# CONFIG_NCP_FS is not set -# CONFIG_NE2000 is not set -# CONFIG_NE2K_PCI is not set -# CONFIG_NEC_MARKEINS is not set -CONFIG_NET=y -# CONFIG_NETCONSOLE is not set -CONFIG_NETDEVICES=y -# CONFIG_NETDEVSIM is not set -# CONFIG_NETFILTER is not set -# CONFIG_NETFILTER_ADVANCED is not set -# CONFIG_NETFILTER_DEBUG is not set -# CONFIG_NETFILTER_EGRESS is not set -# CONFIG_NETFILTER_INGRESS is not set -# CONFIG_NETFILTER_NETLINK is not set -# CONFIG_NETFILTER_NETLINK_ACCT is not set -# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set -# CONFIG_NETFILTER_NETLINK_HOOK is not set -# CONFIG_NETFILTER_NETLINK_LOG is not set -# CONFIG_NETFILTER_NETLINK_OSF is not set -# CONFIG_NETFILTER_NETLINK_QUEUE is not set -# CONFIG_NETFILTER_XTABLES is not set -# CONFIG_NETFILTER_XTABLES_COMPAT is not set -# CONFIG_NETFILTER_XT_CONNMARK is not set -# CONFIG_NETFILTER_XT_MARK is not set -# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set -# CONFIG_NETFILTER_XT_MATCH_BPF is not set -# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set -# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set -# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set -# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set -# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set -# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set -# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set -# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set -# CONFIG_NETFILTER_XT_MATCH_CPU is not set -# CONFIG_NETFILTER_XT_MATCH_DCCP is not set -# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set -# CONFIG_NETFILTER_XT_MATCH_DSCP is not set -# CONFIG_NETFILTER_XT_MATCH_ECN is not set -# CONFIG_NETFILTER_XT_MATCH_ESP is not set -# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set -# CONFIG_NETFILTER_XT_MATCH_HELPER is not set -# CONFIG_NETFILTER_XT_MATCH_HL is not set -# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set -# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set -# CONFIG_NETFILTER_XT_MATCH_L2TP is not set -# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set -# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set -# CONFIG_NETFILTER_XT_MATCH_MAC is not set -# CONFIG_NETFILTER_XT_MATCH_MARK is not set -# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set -# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set -# CONFIG_NETFILTER_XT_MATCH_OSF is not set -# CONFIG_NETFILTER_XT_MATCH_OWNER is not set -# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set -# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set -# CONFIG_NETFILTER_XT_MATCH_POLICY is not set -# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set -# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set -# CONFIG_NETFILTER_XT_MATCH_REALM is not set -# CONFIG_NETFILTER_XT_MATCH_RECENT is not set -# CONFIG_NETFILTER_XT_MATCH_SCTP is not set -# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set -# CONFIG_NETFILTER_XT_MATCH_STATE is not set -# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set -# CONFIG_NETFILTER_XT_MATCH_STRING is not set -# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set -# CONFIG_NETFILTER_XT_MATCH_TIME is not set -# CONFIG_NETFILTER_XT_MATCH_U32 is not set -# CONFIG_NETFILTER_XT_TARGET_AUDIT is not set -# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set -# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set -# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set -# CONFIG_NETFILTER_XT_TARGET_CT is not set -# CONFIG_NETFILTER_XT_TARGET_DSCP is not set -# CONFIG_NETFILTER_XT_TARGET_HL is not set -# CONFIG_NETFILTER_XT_TARGET_HMARK is not set -# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set -# CONFIG_NETFILTER_XT_TARGET_LED is not set -# CONFIG_NETFILTER_XT_TARGET_LOG is not set -# CONFIG_NETFILTER_XT_TARGET_MARK is not set -# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set -# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set -# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set -# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set -# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set -# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set -# CONFIG_NETFILTER_XT_TARGET_SECMARK is not set -# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set -# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set -# CONFIG_NETFILTER_XT_TARGET_TEE is not set -# CONFIG_NETFILTER_XT_TARGET_TPROXY is not set -# CONFIG_NETFILTER_XT_TARGET_TRACE is not set -# CONFIG_NETFS_STATS is not set -# CONFIG_NETLABEL is not set -# CONFIG_NETLINK_DIAG is not set -# CONFIG_NETLINK_MMAP is not set -# CONFIG_NETPOLL is not set -# CONFIG_NETROM is not set -CONFIG_NETWORK_FILESYSTEMS=y -# CONFIG_NETWORK_PHY_TIMESTAMPING is not set -# CONFIG_NETWORK_SECMARK is not set -# CONFIG_NETXEN_NIC is not set -# CONFIG_NET_9P is not set -# CONFIG_NET_ACT_BPF is not set -# CONFIG_NET_ACT_CSUM is not set -# CONFIG_NET_ACT_CT is not set -# CONFIG_NET_ACT_GACT is not set -# CONFIG_NET_ACT_GATE is not set -# CONFIG_NET_ACT_IFE is not set -# CONFIG_NET_ACT_IPT is not set -# CONFIG_NET_ACT_MIRRED is not set -# CONFIG_NET_ACT_MPLS is not set -# CONFIG_NET_ACT_NAT is not set -# CONFIG_NET_ACT_PEDIT is not set -# CONFIG_NET_ACT_POLICE is not set -# CONFIG_NET_ACT_SAMPLE is not set -# CONFIG_NET_ACT_SIMP is not set -# CONFIG_NET_ACT_SKBEDIT is not set -# CONFIG_NET_ACT_SKBMOD is not set -# CONFIG_NET_ACT_TUNNEL_KEY is not set -# CONFIG_NET_ACT_VLAN is not set -CONFIG_NET_CADENCE=y -# CONFIG_NET_CALXEDA_XGMAC is not set -CONFIG_NET_CLS=y -# CONFIG_NET_CLS_ACT is not set -# CONFIG_NET_CLS_BASIC is not set -# CONFIG_NET_CLS_BPF is not set -# CONFIG_NET_CLS_FLOW is not set -# CONFIG_NET_CLS_FLOWER is not set -# CONFIG_NET_CLS_FW is not set -CONFIG_NET_CLS_IND=y -# CONFIG_NET_CLS_MATCHALL is not set -# CONFIG_NET_CLS_ROUTE4 is not set -# CONFIG_NET_CLS_RSVP is not set -# CONFIG_NET_CLS_RSVP6 is not set -# CONFIG_NET_CLS_U32 is not set -CONFIG_NET_CORE=y -# CONFIG_NET_DEVLINK is not set -# CONFIG_NET_DEV_REFCNT_TRACKER is not set -# CONFIG_NET_DROP_MONITOR is not set -# CONFIG_NET_DSA is not set -# CONFIG_NET_DSA_AR9331 is not set -# CONFIG_NET_DSA_BCM_SF2 is not set -# CONFIG_NET_DSA_LANTIQ_GSWIP is not set -# CONFIG_NET_DSA_LEGACY is not set -# CONFIG_NET_DSA_LOOP is not set -# CONFIG_NET_DSA_MICROCHIP_KSZ8795 is not set -# CONFIG_NET_DSA_MICROCHIP_KSZ9477 is not set -# CONFIG_NET_DSA_MICROCHIP_KSZ_COMMON is not set -# CONFIG_NET_DSA_MSCC_FELIX is not set -# CONFIG_NET_DSA_MSCC_SEVILLE is not set -# CONFIG_NET_DSA_MT7530 is not set -# CONFIG_NET_DSA_MV88E6060 is not set -# CONFIG_NET_DSA_MV88E6123_61_65 is not set -# CONFIG_NET_DSA_MV88E6131 is not set -# CONFIG_NET_DSA_MV88E6171 is not set -# CONFIG_NET_DSA_MV88E6352 is not set -# CONFIG_NET_DSA_MV88E6XXX is not set -# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set -# CONFIG_NET_DSA_MV88E6XXX_PTP is not set -# CONFIG_NET_DSA_QCA8K is not set -# CONFIG_NET_DSA_QCA8K_LEDS_SUPPORT is not set -# CONFIG_NET_DSA_REALTEK is not set -# CONFIG_NET_DSA_REALTEK_SMI is not set -# CONFIG_NET_DSA_SJA1105 is not set -# CONFIG_NET_DSA_SMSC_LAN9303_I2C is not set -# CONFIG_NET_DSA_SMSC_LAN9303_MDIO is not set -# CONFIG_NET_DSA_TAG_8021Q is not set -# CONFIG_NET_DSA_TAG_AR9331 is not set -# CONFIG_NET_DSA_TAG_BRCM is not set -# CONFIG_NET_DSA_TAG_BRCM_LEGACY is not set -# CONFIG_NET_DSA_TAG_BRCM_PREPEND is not set -# CONFIG_NET_DSA_TAG_DSA is not set -# CONFIG_NET_DSA_TAG_EDSA is not set -# CONFIG_NET_DSA_TAG_GSWIP is not set -# CONFIG_NET_DSA_TAG_HELLCREEK is not set -# CONFIG_NET_DSA_TAG_KSZ is not set -# CONFIG_NET_DSA_TAG_LAN9303 is not set -# CONFIG_NET_DSA_TAG_MTK is not set -# CONFIG_NET_DSA_TAG_OCELOT is not set -# CONFIG_NET_DSA_TAG_OCELOT_8021Q is not set -# CONFIG_NET_DSA_TAG_QCA is not set -# CONFIG_NET_DSA_TAG_RTL4_A is not set -# CONFIG_NET_DSA_TAG_RTL8_4 is not set -# CONFIG_NET_DSA_TAG_RZN1_A5PSW is not set -# CONFIG_NET_DSA_TAG_SJA1105 is not set -# CONFIG_NET_DSA_TAG_TRAILER is not set -# CONFIG_NET_DSA_TAG_XRS700X is not set -# CONFIG_NET_DSA_VITESSE_VSC73XX is not set -# CONFIG_NET_DSA_VITESSE_VSC73XX_PLATFORM is not set -# CONFIG_NET_DSA_VITESSE_VSC73XX_SPI is not set -# CONFIG_NET_DSA_XRS700X_I2C is not set -# CONFIG_NET_DSA_XRS700X_MDIO is not set -# CONFIG_NET_EMATCH is not set -# CONFIG_NET_EMATCH_CANID is not set -# CONFIG_NET_EMATCH_CMP is not set -# CONFIG_NET_EMATCH_IPT is not set -# CONFIG_NET_EMATCH_META is not set -# CONFIG_NET_EMATCH_NBYTE is not set -CONFIG_NET_EMATCH_STACK=32 -# CONFIG_NET_EMATCH_TEXT is not set -# CONFIG_NET_EMATCH_U32 is not set -# CONFIG_NET_FAILOVER is not set -# CONFIG_NET_FC is not set -# CONFIG_NET_FOU is not set -# CONFIG_NET_FOU_IP_TUNNELS is not set -# CONFIG_NET_IFE is not set -# CONFIG_NET_IPGRE is not set -CONFIG_NET_IPGRE_BROADCAST=y -# CONFIG_NET_IPGRE_DEMUX is not set -# CONFIG_NET_IPIP is not set -# CONFIG_NET_IPVTI is not set -# CONFIG_NET_IP_TUNNEL is not set -# CONFIG_NET_KEY is not set -# CONFIG_NET_KEY_MIGRATE is not set -# CONFIG_NET_L3_MASTER_DEV is not set -# CONFIG_NET_MEDIATEK_STAR_EMAC is not set -# CONFIG_NET_MPLS_GSO is not set -# CONFIG_NET_NCSI is not set -# CONFIG_NET_NSH is not set -# CONFIG_NET_NS_REFCNT_TRACKER is not set -# CONFIG_NET_PACKET_ENGINE is not set -# CONFIG_NET_PKTGEN is not set -# CONFIG_NET_POLL_CONTROLLER is not set -# CONFIG_NET_PTP_CLASSIFY is not set -CONFIG_NET_RX_BUSY_POLL=y -# CONFIG_NET_SB1000 is not set -CONFIG_NET_SCHED=y -# CONFIG_NET_SCH_ATM is not set -# CONFIG_NET_SCH_CAKE is not set -# CONFIG_NET_SCH_CBQ is not set -# CONFIG_NET_SCH_CBS is not set -# CONFIG_NET_SCH_CHOKE is not set -# CONFIG_NET_SCH_CODEL is not set -CONFIG_NET_SCH_DEFAULT=y -# CONFIG_NET_SCH_DRR is not set -# CONFIG_NET_SCH_DSMARK is not set -# CONFIG_NET_SCH_ETF is not set -# CONFIG_NET_SCH_ETS is not set -CONFIG_NET_SCH_FIFO=y -# CONFIG_NET_SCH_FQ is not set -CONFIG_NET_SCH_FQ_CODEL=y -# CONFIG_NET_SCH_FQ_PIE is not set -# CONFIG_NET_SCH_GRED is not set -# CONFIG_NET_SCH_HFSC is not set -# CONFIG_NET_SCH_HHF is not set -# CONFIG_NET_SCH_HTB is not set -# CONFIG_NET_SCH_INGRESS is not set -# CONFIG_NET_SCH_MQPRIO is not set -# CONFIG_NET_SCH_MULTIQ is not set -# CONFIG_NET_SCH_NETEM is not set -# CONFIG_NET_SCH_PIE is not set -# CONFIG_NET_SCH_PLUG is not set -# CONFIG_NET_SCH_PRIO is not set -# CONFIG_NET_SCH_QFQ is not set -# CONFIG_NET_SCH_RED is not set -# CONFIG_NET_SCH_SFB is not set -# CONFIG_NET_SCH_SFQ is not set -# CONFIG_NET_SCH_SKBPRIO is not set -# CONFIG_NET_SCH_TAPRIO is not set -# CONFIG_NET_SCH_TBF is not set -# CONFIG_NET_SCH_TEQL is not set -# CONFIG_NET_SCTPPROBE is not set -# CONFIG_NET_SELFTESTS is not set -CONFIG_NET_SOCK_MSG=y -# CONFIG_NET_SWITCHDEV is not set -# CONFIG_NET_TCPPROBE is not set -# CONFIG_NET_TC_SKB_EXT is not set -# CONFIG_NET_TEAM is not set -# CONFIG_NET_TULIP is not set -# CONFIG_NET_UDP_TUNNEL is not set -CONFIG_NET_VENDOR_3COM=y -CONFIG_NET_VENDOR_8390=y -CONFIG_NET_VENDOR_ADAPTEC=y -CONFIG_NET_VENDOR_ADI=y -CONFIG_NET_VENDOR_AGERE=y -CONFIG_NET_VENDOR_ALACRITECH=y -CONFIG_NET_VENDOR_ALTEON=y -CONFIG_NET_VENDOR_AMAZON=y -CONFIG_NET_VENDOR_AMD=y -CONFIG_NET_VENDOR_AQUANTIA=y -CONFIG_NET_VENDOR_ARC=y -# CONFIG_NET_VENDOR_ASIX is not set -CONFIG_NET_VENDOR_ATHEROS=y -CONFIG_NET_VENDOR_AURORA=y -CONFIG_NET_VENDOR_BROADCOM=y -CONFIG_NET_VENDOR_BROCADE=y -CONFIG_NET_VENDOR_CADENCE=y -CONFIG_NET_VENDOR_CAVIUM=y -CONFIG_NET_VENDOR_CHELSIO=y -CONFIG_NET_VENDOR_CIRRUS=y -CONFIG_NET_VENDOR_CISCO=y -CONFIG_NET_VENDOR_CORTINA=y -# CONFIG_NET_VENDOR_DAVICOM is not set -CONFIG_NET_VENDOR_DEC=y -CONFIG_NET_VENDOR_DLINK=y -CONFIG_NET_VENDOR_EMULEX=y -# CONFIG_NET_VENDOR_ENGLEDER is not set -CONFIG_NET_VENDOR_EXAR=y -CONFIG_NET_VENDOR_EZCHIP=y -CONFIG_NET_VENDOR_FARADAY=y -CONFIG_NET_VENDOR_FREESCALE=y -CONFIG_NET_VENDOR_FUJITSU=y -# CONFIG_NET_VENDOR_FUNGIBLE is not set -CONFIG_NET_VENDOR_GOOGLE=y -CONFIG_NET_VENDOR_HISILICON=y -CONFIG_NET_VENDOR_HP=y -CONFIG_NET_VENDOR_HUAWEI=y -CONFIG_NET_VENDOR_I825XX=y -CONFIG_NET_VENDOR_IBM=y -CONFIG_NET_VENDOR_INTEL=y -# CONFIG_NET_VENDOR_LITEX is not set -CONFIG_NET_VENDOR_MARVELL=y -CONFIG_NET_VENDOR_MELLANOX=y -CONFIG_NET_VENDOR_MICREL=y -CONFIG_NET_VENDOR_MICROCHIP=y -CONFIG_NET_VENDOR_MICROSEMI=y -# CONFIG_NET_VENDOR_MICROSOFT is not set -CONFIG_NET_VENDOR_MYRI=y -CONFIG_NET_VENDOR_NATSEMI=y -CONFIG_NET_VENDOR_NETERION=y -CONFIG_NET_VENDOR_NETRONOME=y -CONFIG_NET_VENDOR_NI=y -CONFIG_NET_VENDOR_NVIDIA=y -CONFIG_NET_VENDOR_OKI=y -CONFIG_NET_VENDOR_PACKET_ENGINES=y -CONFIG_NET_VENDOR_PENSANDO=y -CONFIG_NET_VENDOR_QLOGIC=y -CONFIG_NET_VENDOR_QUALCOMM=y -CONFIG_NET_VENDOR_RDC=y -CONFIG_NET_VENDOR_REALTEK=y -CONFIG_NET_VENDOR_RENESAS=y -CONFIG_NET_VENDOR_ROCKER=y -CONFIG_NET_VENDOR_SAMSUNG=y -CONFIG_NET_VENDOR_SEEQ=y -CONFIG_NET_VENDOR_SILAN=y -CONFIG_NET_VENDOR_SIS=y -CONFIG_NET_VENDOR_SMSC=y -CONFIG_NET_VENDOR_SOCIONEXT=y -CONFIG_NET_VENDOR_SOLARFLARE=y -CONFIG_NET_VENDOR_STMICRO=y -CONFIG_NET_VENDOR_SUN=y -CONFIG_NET_VENDOR_SYNOPSYS=y -CONFIG_NET_VENDOR_TEHUTI=y -CONFIG_NET_VENDOR_TI=y -CONFIG_NET_VENDOR_TOSHIBA=y -# CONFIG_NET_VENDOR_VERTEXCOM is not set -CONFIG_NET_VENDOR_VIA=y -# CONFIG_NET_VENDOR_WANGXUN is not set -CONFIG_NET_VENDOR_WIZNET=y -CONFIG_NET_VENDOR_XILINX=y -CONFIG_NET_VENDOR_XIRCOM=y -# CONFIG_NET_VRF is not set -# CONFIG_NET_XGENE is not set -CONFIG_NEW_LEDS=y -CONFIG_NF_CONNTRACK_CUSTOM=4 -# CONFIG_NFC is not set -# CONFIG_NFP is not set -# CONFIG_NFSD is not set -# CONFIG_NFSD_V2_ACL is not set -CONFIG_NFSD_V3=y -# CONFIG_NFSD_V3_ACL is not set -# CONFIG_NFSD_V4 is not set -# CONFIG_NFS_ACL_SUPPORT is not set -CONFIG_NFS_COMMON=y -# CONFIG_NFS_DISABLE_UDP_SUPPORT is not set -# CONFIG_NFS_FS is not set -# CONFIG_NFS_FSCACHE is not set -# CONFIG_NFS_SWAP is not set -# CONFIG_NFS_V2 is not set -CONFIG_NFS_V3=y -# CONFIG_NFS_V3_ACL is not set -# CONFIG_NFS_V4 is not set -# CONFIG_NFS_V4_1 is not set -# CONFIG_NFTL is not set -# CONFIG_NFT_BRIDGE_META is not set -# CONFIG_NFT_BRIDGE_REJECT is not set -# CONFIG_NFT_CONNLIMIT is not set -# CONFIG_NFT_DUP_IPV4 is not set -# CONFIG_NFT_DUP_IPV6 is not set -# CONFIG_NFT_FIB_IPV4 is not set -# CONFIG_NFT_FIB_IPV6 is not set -# CONFIG_NFT_FIB_NETDEV is not set -# CONFIG_NFT_FLOW_OFFLOAD is not set -# CONFIG_NFT_OBJREF is not set -# CONFIG_NFT_OSF is not set -# CONFIG_NFT_REJECT_NETDEV is not set -# CONFIG_NFT_RT is not set -# CONFIG_NFT_SET_BITMAP is not set -# CONFIG_NFT_SOCKET is not set -# CONFIG_NFT_SYNPROXY is not set -# CONFIG_NFT_TPROXY is not set -# CONFIG_NFT_TUNNEL is not set -# CONFIG_NFT_XFRM is not set -# CONFIG_NF_CONNTRACK is not set -# CONFIG_NF_CONNTRACK_AMANDA is not set -# CONFIG_NF_CONNTRACK_BRIDGE is not set -# CONFIG_NF_CONNTRACK_EVENTS is not set -# CONFIG_NF_CONNTRACK_FTP is not set -# CONFIG_NF_CONNTRACK_H323 is not set -# CONFIG_NF_CONNTRACK_IRC is not set -# CONFIG_NF_CONNTRACK_LABELS is not set -# CONFIG_NF_CONNTRACK_MARK is not set -# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set -# CONFIG_NF_CONNTRACK_PPTP is not set -CONFIG_NF_CONNTRACK_PROCFS=y -# CONFIG_NF_CONNTRACK_PROC_COMPAT is not set -# CONFIG_NF_CONNTRACK_SANE is not set -# CONFIG_NF_CONNTRACK_SECMARK is not set -# CONFIG_NF_CONNTRACK_SIP is not set -# CONFIG_NF_CONNTRACK_SNMP is not set -# CONFIG_NF_CONNTRACK_TFTP is not set -# CONFIG_NF_CONNTRACK_TIMEOUT is not set -# CONFIG_NF_CONNTRACK_TIMESTAMP is not set -# CONFIG_NF_CONNTRACK_ZONES is not set -# CONFIG_NF_CT_NETLINK is not set -# CONFIG_NF_CT_NETLINK_HELPER is not set -# CONFIG_NF_CT_NETLINK_TIMEOUT is not set -# CONFIG_NF_CT_PROTO_DCCP is not set -# CONFIG_NF_CT_PROTO_GRE is not set -# CONFIG_NF_CT_PROTO_SCTP is not set -# CONFIG_NF_CT_PROTO_UDPLITE is not set -# CONFIG_NF_DEFRAG_IPV4 is not set -# CONFIG_NF_DUP_IPV4 is not set -# CONFIG_NF_DUP_IPV6 is not set -# CONFIG_NF_FLOW_TABLE is not set -# CONFIG_NF_FLOW_TABLE_PROCFS is not set -# CONFIG_NF_LOG_ARP is not set -# CONFIG_NF_LOG_BRIDGE is not set -# CONFIG_NF_LOG_IPV4 is not set -# CONFIG_NF_LOG_NETDEV is not set -# CONFIG_NF_LOG_SYSLOG is not set -# CONFIG_NF_NAT is not set -# CONFIG_NF_NAT_AMANDA is not set -# CONFIG_NF_NAT_FTP is not set -# CONFIG_NF_NAT_H323 is not set -# CONFIG_NF_NAT_IRC is not set -# CONFIG_NF_NAT_NEEDED is not set -# CONFIG_NF_NAT_PPTP is not set -# CONFIG_NF_NAT_PROTO_GRE is not set -# CONFIG_NF_NAT_SIP is not set -# CONFIG_NF_NAT_SNMP_BASIC is not set -# CONFIG_NF_NAT_TFTP is not set -# CONFIG_NF_REJECT_IPV4 is not set -# CONFIG_NF_REJECT_IPV6 is not set -# CONFIG_NF_SOCKET_IPV4 is not set -# CONFIG_NF_SOCKET_IPV6 is not set -# CONFIG_NF_TABLES is not set -CONFIG_NF_TABLES_ARP=y -CONFIG_NF_TABLES_BRIDGE=y -CONFIG_NF_TABLES_INET=y -CONFIG_NF_TABLES_IPV4=y -CONFIG_NF_TABLES_IPV6=y -CONFIG_NF_TABLES_NETDEV=y -# CONFIG_NF_TABLES_SET is not set -# CONFIG_NF_TPROXY_IPV4 is not set -# CONFIG_NF_TPROXY_IPV6 is not set -# CONFIG_NGBE is not set -# CONFIG_NI65 is not set -# CONFIG_NI903X_WDT is not set -# CONFIG_NIC7018_WDT is not set -# CONFIG_NILFS2_FS is not set -# CONFIG_NIU is not set -# CONFIG_NI_XGE_MANAGEMENT_ENET is not set -CONFIG_NLATTR=y -# CONFIG_NLMON is not set -# CONFIG_NLM_XLP_BOARD is not set -# CONFIG_NLM_XLR_BOARD is not set -# CONFIG_NLS is not set -# CONFIG_NLS_ASCII is not set -# CONFIG_NLS_CODEPAGE_1250 is not set -# CONFIG_NLS_CODEPAGE_1251 is not set -# CONFIG_NLS_CODEPAGE_437 is not set -# CONFIG_NLS_CODEPAGE_737 is not set -# CONFIG_NLS_CODEPAGE_775 is not set -# CONFIG_NLS_CODEPAGE_850 is not set -# CONFIG_NLS_CODEPAGE_852 is not set -# CONFIG_NLS_CODEPAGE_855 is not set -# CONFIG_NLS_CODEPAGE_857 is not set -# CONFIG_NLS_CODEPAGE_860 is not set -# CONFIG_NLS_CODEPAGE_861 is not set -# CONFIG_NLS_CODEPAGE_862 is not set -# CONFIG_NLS_CODEPAGE_863 is not set -# CONFIG_NLS_CODEPAGE_864 is not set -# CONFIG_NLS_CODEPAGE_865 is not set -# CONFIG_NLS_CODEPAGE_866 is not set -# CONFIG_NLS_CODEPAGE_869 is not set -# CONFIG_NLS_CODEPAGE_874 is not set -# CONFIG_NLS_CODEPAGE_932 is not set -# CONFIG_NLS_CODEPAGE_936 is not set -# CONFIG_NLS_CODEPAGE_949 is not set -# CONFIG_NLS_CODEPAGE_950 is not set -CONFIG_NLS_DEFAULT="iso8859-1" -# CONFIG_NLS_ISO8859_1 is not set -# CONFIG_NLS_ISO8859_13 is not set -# CONFIG_NLS_ISO8859_14 is not set -# CONFIG_NLS_ISO8859_15 is not set -# CONFIG_NLS_ISO8859_2 is not set -# CONFIG_NLS_ISO8859_3 is not set -# CONFIG_NLS_ISO8859_4 is not set -# CONFIG_NLS_ISO8859_5 is not set -# CONFIG_NLS_ISO8859_6 is not set -# CONFIG_NLS_ISO8859_7 is not set -# CONFIG_NLS_ISO8859_8 is not set -# CONFIG_NLS_ISO8859_9 is not set -# CONFIG_NLS_KOI8_R is not set -# CONFIG_NLS_KOI8_U is not set -# CONFIG_NLS_MAC_CELTIC is not set -# CONFIG_NLS_MAC_CENTEURO is not set -# CONFIG_NLS_MAC_CROATIAN is not set -# CONFIG_NLS_MAC_CYRILLIC is not set -# CONFIG_NLS_MAC_GAELIC is not set -# CONFIG_NLS_MAC_GREEK is not set -# CONFIG_NLS_MAC_ICELAND is not set -# CONFIG_NLS_MAC_INUIT is not set -# CONFIG_NLS_MAC_ROMAN is not set -# CONFIG_NLS_MAC_ROMANIAN is not set -# CONFIG_NLS_MAC_TURKISH is not set -# CONFIG_NLS_UTF8 is not set -CONFIG_NMI_LOG_BUF_SHIFT=13 -# CONFIG_NOA1305 is not set -# CONFIG_NOP_USB_XCEIV is not set -# CONFIG_NORTEL_HERMES is not set -# CONFIG_NOTIFIER_ERROR_INJECTION is not set -# CONFIG_NOUVEAU_LEGACY_CTX_SUPPORT is not set -# CONFIG_NOZOMI is not set -# CONFIG_NO_BOOTMEM is not set -# CONFIG_NO_HZ is not set -# CONFIG_NO_HZ_FULL is not set -# CONFIG_NO_HZ_IDLE is not set -# CONFIG_NS83820 is not set -# CONFIG_NTB is not set -# CONFIG_NTFS3_64BIT_CLUSTER is not set -# CONFIG_NTFS3_FS is not set -# CONFIG_NTFS3_FS_POSIX_ACL is not set -# CONFIG_NTFS3_LZX_XPRESS is not set -# CONFIG_NTFS_DEBUG is not set -# CONFIG_NTFS_FS is not set -# CONFIG_NTFS_RW is not set -# CONFIG_NTP_PPS is not set -# CONFIG_NULL_TTY is not set -# CONFIG_NUMA is not set -# CONFIG_NVIDIA_CARMEL_CNP_ERRATUM is not set -# CONFIG_NVIDIA_WMI_EC_BACKLIGHT is not set -# CONFIG_NVM is not set -# CONFIG_NVMEM is not set -# CONFIG_NVMEM_BCM_OCOTP is not set -# CONFIG_NVMEM_IMX_OCOTP is not set -# CONFIG_NVMEM_LAYOUT_ONIE_TLV is not set -# CONFIG_NVMEM_LAYOUT_SL28_VPD is not set -# CONFIG_NVMEM_REBOOT_MODE is not set -# CONFIG_NVMEM_RMEM is not set -# CONFIG_NVMEM_SYSFS is not set -# CONFIG_NVMEM_U_BOOT_ENV is not set -# CONFIG_NVME_AUTH is not set -# CONFIG_NVME_FC is not set -# CONFIG_NVME_TARGET is not set -# CONFIG_NVME_TCP is not set -# CONFIG_NVME_VERBOSE_ERRORS is not set -# CONFIG_NVRAM is not set -# CONFIG_NV_TCO is not set -# CONFIG_NXP_C45_TJA11XX_PHY is not set -# CONFIG_NXP_STB220 is not set -# CONFIG_NXP_STB225 is not set -# CONFIG_NXP_TJA11XX_PHY is not set -# CONFIG_N_GSM is not set -# CONFIG_OABI_COMPAT is not set -# CONFIG_OBS600 is not set -# CONFIG_OCFS2_FS is not set -# CONFIG_OCTEONTX2_AF is not set -# CONFIG_OCTEONTX2_PF is not set -# CONFIG_OCTEON_EP is not set -# CONFIG_OF_OVERLAY is not set -CONFIG_OF_RESERVED_MEM=y -# CONFIG_OF_UNITTEST is not set -# CONFIG_OID_REGISTRY is not set -# CONFIG_OMAP2_DSS_DEBUG is not set -# CONFIG_OMAP2_DSS_DEBUGFS is not set -# CONFIG_OMAP2_DSS_SDI is not set -# CONFIG_OMAP_OCP2SCP is not set -# CONFIG_OMAP_USB2 is not set -# CONFIG_OMFS_FS is not set -# CONFIG_OPENVSWITCH is not set -# CONFIG_OPEN_DICE is not set -# CONFIG_OPROFILE is not set -# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set -# CONFIG_OPT3001 is not set -CONFIG_OPTIMIZE_INLINING=y -# CONFIG_ORANGEFS_FS is not set -# CONFIG_ORION_WATCHDOG is not set -# CONFIG_OSF_PARTITION is not set -# CONFIG_OSNOISE_TRACER is not set -CONFIG_OVERLAY_FS=y -# CONFIG_OVERLAY_FS_INDEX is not set -# CONFIG_OVERLAY_FS_METACOPY is not set -CONFIG_OVERLAY_FS_REDIRECT_ALWAYS_FOLLOW=y -# CONFIG_OVERLAY_FS_REDIRECT_DIR is not set -CONFIG_OVERLAY_FS_XINO_AUTO=y -# CONFIG_OWL_LOADER is not set -# CONFIG_P54_COMMON is not set -# CONFIG_PA12203001 is not set -CONFIG_PACKET=y -# CONFIG_PACKET_DIAG is not set -# CONFIG_PACKING is not set -# CONFIG_PAGE_EXTENSION is not set -# CONFIG_PAGE_OWNER is not set -# CONFIG_PAGE_POISONING is not set -# CONFIG_PAGE_POOL is not set -# CONFIG_PAGE_POOL_STATS is not set -# CONFIG_PAGE_REPORTING is not set -# CONFIG_PAGE_SIZE_16KB is not set -# CONFIG_PAGE_SIZE_32KB is not set -CONFIG_PAGE_SIZE_4KB=y -# CONFIG_PAGE_SIZE_64KB is not set -# CONFIG_PAGE_SIZE_8KB is not set -# CONFIG_PAGE_TABLE_CHECK is not set -# CONFIG_PALMAS_GPADC is not set -# CONFIG_PANASONIC_LAPTOP is not set -# CONFIG_PANEL is not set -CONFIG_PANIC_ON_OOPS=y -CONFIG_PANIC_ON_OOPS_VALUE=1 -CONFIG_PANIC_TIMEOUT=1 -# CONFIG_PANTHERLORD_FF is not set -# CONFIG_PARAVIRT is not set -# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set -# CONFIG_PARPORT is not set -# CONFIG_PARPORT_1284 is not set -# CONFIG_PARPORT_AX88796 is not set -# CONFIG_PARPORT_GSC is not set -# CONFIG_PARPORT_PC is not set -CONFIG_PARTITION_ADVANCED=y -# CONFIG_PATA_ALI is not set -# CONFIG_PATA_AMD is not set -# CONFIG_PATA_ARASAN_CF is not set -# CONFIG_PATA_ARTOP is not set -# CONFIG_PATA_ATIIXP is not set -# CONFIG_PATA_ATP867X is not set -# CONFIG_PATA_CMD640_PCI is not set -# CONFIG_PATA_CMD64X is not set -# CONFIG_PATA_CS5520 is not set -# CONFIG_PATA_CS5530 is not set -# CONFIG_PATA_CS5535 is not set -# CONFIG_PATA_CS5536 is not set -# CONFIG_PATA_CYPRESS is not set -# CONFIG_PATA_EFAR is not set -# CONFIG_PATA_HPT366 is not set -# CONFIG_PATA_HPT37X is not set -# CONFIG_PATA_HPT3X2N is not set -# CONFIG_PATA_HPT3X3 is not set -# CONFIG_PATA_IMX is not set -# CONFIG_PATA_ISAPNP is not set -# CONFIG_PATA_IT8213 is not set -# CONFIG_PATA_IT821X is not set -# CONFIG_PATA_JMICRON is not set -# CONFIG_PATA_LEGACY is not set -# CONFIG_PATA_MARVELL is not set -# CONFIG_PATA_MPIIX is not set -# CONFIG_PATA_NETCELL is not set -# CONFIG_PATA_NINJA32 is not set -# CONFIG_PATA_NS87410 is not set -# CONFIG_PATA_NS87415 is not set -# CONFIG_PATA_OCTEON_CF is not set -# CONFIG_PATA_OF_PLATFORM is not set -# CONFIG_PATA_OLDPIIX is not set -# CONFIG_PATA_OPTI is not set -# CONFIG_PATA_OPTIDMA is not set -# CONFIG_PATA_PCMCIA is not set -# CONFIG_PATA_PDC2027X is not set -# CONFIG_PATA_PDC_OLD is not set -# CONFIG_PATA_PLATFORM is not set -# CONFIG_PATA_QDI is not set -# CONFIG_PATA_RADISYS is not set -# CONFIG_PATA_RDC is not set -# CONFIG_PATA_RZ1000 is not set -# CONFIG_PATA_SC1200 is not set -# CONFIG_PATA_SCH is not set -# CONFIG_PATA_SERVERWORKS is not set -# CONFIG_PATA_SIL680 is not set -# CONFIG_PATA_SIS is not set -# CONFIG_PATA_TOSHIBA is not set -# CONFIG_PATA_TRIFLEX is not set -# CONFIG_PATA_VIA is not set -# CONFIG_PATA_WINBOND is not set -# CONFIG_PATA_WINBOND_VLB is not set -# CONFIG_PC104 is not set -# CONFIG_PC300TOO is not set -# CONFIG_PCCARD is not set -# CONFIG_PCH_DMA is not set -# CONFIG_PCH_GBE is not set -# CONFIG_PCH_PHUB is not set -# CONFIG_PCI is not set -# CONFIG_PCI200SYN is not set -# CONFIG_PCIEAER is not set -# CONFIG_PCIEAER_INJECT is not set -# CONFIG_PCIEASPM is not set -# CONFIG_PCIEPORTBUS is not set -# CONFIG_PCIE_AL is not set -# CONFIG_PCIE_ALTERA is not set -# CONFIG_PCIE_ARMADA_8K is not set -CONFIG_PCIE_BUS_DEFAULT=y -# CONFIG_PCIE_BUS_PEER2PEER is not set -# CONFIG_PCIE_BUS_PERFORMANCE is not set -# CONFIG_PCIE_BUS_SAFE is not set -# CONFIG_PCIE_BUS_TUNE_OFF is not set -# CONFIG_PCIE_BW is not set -# CONFIG_PCIE_CADENCE_HOST is not set -# CONFIG_PCIE_CADENCE_PLAT_HOST is not set -# CONFIG_PCIE_DPC is not set -# CONFIG_PCIE_DW_PLAT is not set -# CONFIG_PCIE_DW_PLAT_HOST is not set -# CONFIG_PCIE_ECRC is not set -# CONFIG_PCIE_IPROC is not set -# CONFIG_PCIE_KIRIN is not set -# CONFIG_PCIE_LAYERSCAPE_GEN4 is not set -# CONFIG_PCIE_MEDIATEK_GEN3 is not set -# CONFIG_PCIE_MICROCHIP_HOST is not set -# CONFIG_PCIE_PTM is not set -# CONFIG_PCIE_XILINX is not set -# CONFIG_PCIPCWATCHDOG is not set -# CONFIG_PCI_ATMEL is not set -# CONFIG_PCI_CNB20LE_QUIRK is not set -# CONFIG_PCI_DEBUG is not set -# CONFIG_PCI_DISABLE_COMMON_QUIRKS is not set -# CONFIG_PCI_ENDPOINT is not set -# CONFIG_PCI_ENDPOINT_TEST is not set -# CONFIG_PCI_FTPCI100 is not set -# CONFIG_PCI_HERMES is not set -# CONFIG_PCI_HISI is not set -# CONFIG_PCI_HOST_GENERIC is not set -# CONFIG_PCI_HOST_THUNDER_ECAM is not set -# CONFIG_PCI_HOST_THUNDER_PEM is not set -# CONFIG_PCI_IOV is not set -# CONFIG_PCI_J721E_HOST is not set -# CONFIG_PCI_LAYERSCAPE is not set -# CONFIG_PCI_MESON is not set -# CONFIG_PCI_MSI is not set -# CONFIG_PCI_PASID is not set -# CONFIG_PCI_PF_STUB is not set -# CONFIG_PCI_PRI is not set -CONFIG_PCI_QUIRKS=y -# CONFIG_PCI_REALLOC_ENABLE_AUTO is not set -# CONFIG_PCI_STUB is not set -# CONFIG_PCI_SW_SWITCHTEC is not set -CONFIG_PCI_SYSCALL=y -# CONFIG_PCI_V3_SEMI is not set -# CONFIG_PCI_XGENE is not set -# CONFIG_PCMCIA is not set -# CONFIG_PCMCIA_3C574 is not set -# CONFIG_PCMCIA_3C589 is not set -# CONFIG_PCMCIA_AHA152X is not set -# CONFIG_PCMCIA_ATMEL is not set -# CONFIG_PCMCIA_AXNET is not set -# CONFIG_PCMCIA_DEBUG is not set -# CONFIG_PCMCIA_FDOMAIN is not set -# CONFIG_PCMCIA_FMVJ18X is not set -# CONFIG_PCMCIA_HERMES is not set -# CONFIG_PCMCIA_LOAD_CIS is not set -# CONFIG_PCMCIA_NINJA_SCSI is not set -# CONFIG_PCMCIA_NMCLAN is not set -# CONFIG_PCMCIA_PCNET is not set -# CONFIG_PCMCIA_QLOGIC is not set -# CONFIG_PCMCIA_RAYCS is not set -# CONFIG_PCMCIA_SMC91C92 is not set -# CONFIG_PCMCIA_SPECTRUM is not set -# CONFIG_PCMCIA_SYM53C500 is not set -# CONFIG_PCMCIA_WL3501 is not set -# CONFIG_PCMCIA_XIRC2PS is not set -# CONFIG_PCMCIA_XIRCOM is not set -# CONFIG_PCNET32 is not set -# CONFIG_PCPU_DEV_REFCNT is not set -# CONFIG_PCSPKR_PLATFORM is not set -# CONFIG_PCS_XPCS is not set -# CONFIG_PD6729 is not set -# CONFIG_PDA_POWER is not set -# CONFIG_PDC_ADMA is not set -# CONFIG_PEAQ_WMI is not set -# CONFIG_PECI is not set -# CONFIG_PERCPU_STATS is not set -# CONFIG_PERCPU_TEST is not set -# CONFIG_PERF_EVENTS is not set -# CONFIG_PERF_EVENTS_AMD_POWER is not set -# CONFIG_PERSISTENT_KEYRINGS is not set -# CONFIG_PHANTOM is not set -# CONFIG_PHONET is not set -# CONFIG_PHYLIB is not set -# CONFIG_PHYLIB_LEDS is not set -# CONFIG_PHYS_ADDR_T_64BIT is not set -# CONFIG_PHY_CADENCE_DP is not set -# CONFIG_PHY_CADENCE_DPHY is not set -# CONFIG_PHY_CADENCE_DPHY_RX is not set -# CONFIG_PHY_CADENCE_SALVO is not set -# CONFIG_PHY_CADENCE_SIERRA is not set -# CONFIG_PHY_CADENCE_TORRENT is not set -# CONFIG_PHY_CAN_TRANSCEIVER is not set -# CONFIG_PHY_CPCAP_USB is not set -# CONFIG_PHY_EXYNOS_DP_VIDEO is not set -# CONFIG_PHY_EXYNOS_MIPI_VIDEO is not set -# CONFIG_PHY_FSL_IMX8MQ_USB is not set -# CONFIG_PHY_INGENIC_USB is not set -# CONFIG_PHY_INTEL_KEEMBAY_EMMC is not set -# CONFIG_PHY_LAN966X_SERDES is not set -# CONFIG_PHY_MAPPHONE_MDM6600 is not set -# CONFIG_PHY_MIXEL_MIPI_DPHY is not set -# CONFIG_PHY_MTK_HDMI is not set -# CONFIG_PHY_MTK_MIPI_DSI is not set -# CONFIG_PHY_MVEBU_CP110_UTMI is not set -# CONFIG_PHY_OCELOT_SERDES is not set -# CONFIG_PHY_PISTACHIO_USB is not set -# CONFIG_PHY_PXA_28NM_HSIC is not set -# CONFIG_PHY_PXA_28NM_USB2 is not set -# CONFIG_PHY_QCOM_DWC3 is not set -# CONFIG_PHY_QCOM_USB_HS is not set -# CONFIG_PHY_QCOM_USB_HSIC is not set -# CONFIG_PHY_SAMSUNG_USB2 is not set -# CONFIG_PHY_TUSB1210 is not set -# CONFIG_PHY_XGENE is not set -# CONFIG_PI433 is not set -# CONFIG_PID_IN_CONTEXTIDR is not set -# CONFIG_PID_NS is not set -CONFIG_PINCONF=y -# CONFIG_PINCTRL is not set -# CONFIG_PINCTRL_AMD is not set -# CONFIG_PINCTRL_AXP209 is not set -# CONFIG_PINCTRL_CEDARFORK is not set -# CONFIG_PINCTRL_CY8C95X0 is not set -# CONFIG_PINCTRL_EXYNOS is not set -# CONFIG_PINCTRL_EXYNOS5440 is not set -# CONFIG_PINCTRL_ICELAKE is not set -# CONFIG_PINCTRL_INGENIC is not set -# CONFIG_PINCTRL_LPASS_LPI is not set -# CONFIG_PINCTRL_MCP23S08 is not set -# CONFIG_PINCTRL_MDM9607 is not set -# CONFIG_PINCTRL_METEORLAKE is not set -# CONFIG_PINCTRL_MICROCHIP_SGPIO is not set -# CONFIG_PINCTRL_MSM8953 is not set -# CONFIG_PINCTRL_MSM8X74 is not set -# CONFIG_PINCTRL_MT6779 is not set -# CONFIG_PINCTRL_MT8167 is not set -# CONFIG_PINCTRL_MT8192 is not set -# CONFIG_PINCTRL_MT8195 is not set -# CONFIG_PINCTRL_MT8365 is not set -# CONFIG_PINCTRL_MTK_V2 is not set -# CONFIG_PINCTRL_OCELOT is not set -# CONFIG_PINCTRL_PISTACHIO is not set -# CONFIG_PINCTRL_SC7280 is not set -# CONFIG_PINCTRL_SC8180X is not set -# CONFIG_PINCTRL_SDX55 is not set -CONFIG_PINCTRL_SINGLE=y -# CONFIG_PINCTRL_SM6115 is not set -# CONFIG_PINCTRL_SM6125 is not set -# CONFIG_PINCTRL_SM8350 is not set -# CONFIG_PINCTRL_STMFX is not set -# CONFIG_PINCTRL_SX150X is not set -# CONFIG_PING is not set -CONFIG_PINMUX=y -# CONFIG_PKCS7_MESSAGE_PARSER is not set -# CONFIG_PL310_ERRATA_588369 is not set -# CONFIG_PL310_ERRATA_727915 is not set -# CONFIG_PL310_ERRATA_753970 is not set -# CONFIG_PL310_ERRATA_769419 is not set -# CONFIG_PL320_MBOX is not set -# CONFIG_PL330_DMA is not set -# CONFIG_PLATFORM_MHU is not set -# CONFIG_PLAT_SPEAR is not set -# CONFIG_PLIP is not set -# CONFIG_PLX_DMA is not set -# CONFIG_PLX_HERMES is not set -# CONFIG_PM is not set -# CONFIG_PMBUS is not set -# CONFIG_PMC_MSP is not set -# CONFIG_PMIC_ADP5520 is not set -# CONFIG_PMIC_DA903X is not set -# CONFIG_PMS7003 is not set -# CONFIG_PM_AUTOSLEEP is not set -# CONFIG_PM_DEBUG is not set -# CONFIG_PM_DEVFREQ is not set -# CONFIG_PM_USERSPACE_AUTOSLEEP is not set -# CONFIG_PM_WAKELOCKS is not set -# CONFIG_POSIX_MQUEUE is not set -CONFIG_POSIX_TIMERS=y -# CONFIG_POWERCAP is not set -# CONFIG_POWER_AVS is not set -# CONFIG_POWER_RESET is not set -# CONFIG_POWER_RESET_BRCMKONA is not set -# CONFIG_POWER_RESET_BRCMSTB is not set -# CONFIG_POWER_RESET_GPIO is not set -# CONFIG_POWER_RESET_GPIO_RESTART is not set -# CONFIG_POWER_RESET_LINKSTATION is not set -# CONFIG_POWER_RESET_LTC2952 is not set -# CONFIG_POWER_RESET_PIIX4_POWEROFF is not set -# CONFIG_POWER_RESET_QNAP is not set -# CONFIG_POWER_RESET_REGULATOR is not set -# CONFIG_POWER_RESET_RESTART is not set -# CONFIG_POWER_RESET_SYSCON is not set -# CONFIG_POWER_RESET_SYSCON_POWEROFF is not set -# CONFIG_POWER_RESET_VERSATILE is not set -# CONFIG_POWER_RESET_XGENE is not set -# CONFIG_POWER_SUPPLY is not set -# CONFIG_POWER_SUPPLY_DEBUG is not set -# CONFIG_POWER_SUPPLY_HWMON is not set -# CONFIG_PPC4xx_GPIO is not set -# CONFIG_PPC_16K_PAGES is not set -# CONFIG_PPC_256K_PAGES is not set -CONFIG_PPC_4K_PAGES=y -# CONFIG_PPC_64K_PAGES is not set -# CONFIG_PPC_DISABLE_WERROR is not set -# CONFIG_PPC_EMULATED_STATS is not set -# CONFIG_PPC_EPAPR_HV_BYTECHAN is not set -# CONFIG_PPC_QUEUED_SPINLOCKS is not set -# CONFIG_PPP is not set -# CONFIG_PPPOATM is not set -# CONFIG_PPPOE is not set -# CONFIG_PPPOL2TP is not set -# CONFIG_PPP_ASYNC is not set -# CONFIG_PPP_BSDCOMP is not set -# CONFIG_PPP_DEFLATE is not set -CONFIG_PPP_FILTER=y -# CONFIG_PPP_MPPE is not set -CONFIG_PPP_MULTILINK=y -# CONFIG_PPP_SYNC_TTY is not set -# CONFIG_PPS is not set -# CONFIG_PPS_CLIENT_GPIO is not set -# CONFIG_PPS_CLIENT_KTIMER is not set -# CONFIG_PPS_CLIENT_LDISC is not set -# CONFIG_PPS_CLIENT_PARPORT is not set -# CONFIG_PPS_DEBUG is not set -# CONFIG_PPTP is not set -# CONFIG_PREEMPT is not set -# CONFIG_PREEMPTIRQ_DELAY_TEST is not set -# CONFIG_PREEMPTIRQ_EVENTS is not set -# CONFIG_PREEMPT_DYNAMIC is not set -CONFIG_PREEMPT_NONE=y -# CONFIG_PREEMPT_TRACER is not set -# CONFIG_PREEMPT_VOLUNTARY is not set -# CONFIG_PRESTERA is not set -CONFIG_PREVENT_FIRMWARE_BUILD=y -# CONFIG_PRIME_NUMBERS is not set -CONFIG_PRINTK=y -# CONFIG_PRINTK_CALLER is not set -# CONFIG_PRINTK_INDEX is not set -CONFIG_PRINTK_NMI=y -CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 -# CONFIG_PRINTK_TIME is not set -CONFIG_PRINT_STACK_DEPTH=64 -# CONFIG_PRISM2_USB is not set -# CONFIG_PRISM54 is not set -# CONFIG_PROC_CHILDREN is not set -CONFIG_PROC_FS=y -# CONFIG_PROC_KCORE is not set -# CONFIG_PROC_PAGE_MONITOR is not set -# CONFIG_PROC_STRIPPED is not set -CONFIG_PROC_SYSCTL=y -# CONFIG_PROC_VMCORE_DEVICE_DUMP is not set -# CONFIG_PROFILE_ALL_BRANCHES is not set -# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set -# CONFIG_PROFILING is not set -# CONFIG_PROVE_LOCKING is not set -# CONFIG_PROVE_RAW_LOCK_NESTING is not set -# CONFIG_PROVE_RCU is not set -# CONFIG_PROVE_RCU_LIST is not set -# CONFIG_PROVE_RCU_REPEATEDLY is not set -# CONFIG_PSAMPLE is not set -# CONFIG_PSB6970_PHY is not set -# CONFIG_PSE_CONTROLLER is not set -# CONFIG_PSI is not set -# CONFIG_PSTORE is not set -# CONFIG_PSTORE_842_COMPRESS is not set -# CONFIG_PSTORE_BLK is not set -# CONFIG_PSTORE_COMPRESS is not set -# CONFIG_PSTORE_CONSOLE is not set -CONFIG_PSTORE_DEFAULT_KMSG_BYTES=10240 -# CONFIG_PSTORE_DEFLATE_COMPRESS is not set -# CONFIG_PSTORE_DEFLATE_COMPRESS_DEFAULT is not set -# CONFIG_PSTORE_FTRACE is not set -# CONFIG_PSTORE_LZ4HC_COMPRESS is not set -# CONFIG_PSTORE_LZ4_COMPRESS is not set -# CONFIG_PSTORE_LZO_COMPRESS is not set -# CONFIG_PSTORE_PMSG is not set -# CONFIG_PSTORE_RAM is not set -# CONFIG_PSTORE_ZSTD_COMPRESS is not set -# CONFIG_PTDUMP_DEBUGFS is not set -# CONFIG_PTP_1588_CLOCK is not set -# CONFIG_PTP_1588_CLOCK_IDT82P33 is not set -# CONFIG_PTP_1588_CLOCK_IDTCM is not set -# CONFIG_PTP_1588_CLOCK_IXP46X is not set -# CONFIG_PTP_1588_CLOCK_KVM is not set -# CONFIG_PTP_1588_CLOCK_OCP is not set -# CONFIG_PTP_1588_CLOCK_PCH is not set -# CONFIG_PTP_1588_CLOCK_VMW is not set -# CONFIG_PUBLIC_KEY_ALGO_RSA is not set -# CONFIG_PVPANIC is not set -# CONFIG_PWM is not set -# CONFIG_PWM_ATMEL_TCB is not set -# CONFIG_PWM_CLK is not set -# CONFIG_PWM_DEBUG is not set -# CONFIG_PWM_DWC is not set -# CONFIG_PWM_FSL_FTM is not set -# CONFIG_PWM_IMG is not set -# CONFIG_PWM_JZ4740 is not set -# CONFIG_PWM_MEDIATEK is not set -# CONFIG_PWM_PCA9685 is not set -# CONFIG_PWM_RASPBERRYPI_POE is not set -# CONFIG_PWM_XILINX is not set -CONFIG_PWRSEQ_EMMC=y -# CONFIG_PWRSEQ_SD8787 is not set -CONFIG_PWRSEQ_SIMPLE=y -# CONFIG_QCA7000 is not set -# CONFIG_QCA7000_SPI is not set -# CONFIG_QCA7000_UART is not set -# CONFIG_QCOM_A7PLL is not set -# CONFIG_QCOM_BAM_DMUX is not set -# CONFIG_QCOM_EMAC is not set -# CONFIG_QCOM_FALKOR_ERRATUM_1003 is not set -# CONFIG_QCOM_FALKOR_ERRATUM_1009 is not set -# CONFIG_QCOM_FALKOR_ERRATUM_E1041 is not set -# CONFIG_QCOM_GPI_DMA is not set -# CONFIG_QCOM_HIDMA is not set -# CONFIG_QCOM_HIDMA_MGMT is not set -# CONFIG_QCOM_LMH is not set -# CONFIG_QCOM_QDF2400_ERRATUM_0065 is not set -# CONFIG_QCOM_SPMI_ADC5 is not set -# CONFIG_QCOM_SPMI_ADC_TM5 is not set -# CONFIG_QCOM_SPMI_IADC is not set -# CONFIG_QCOM_SPMI_TEMP_ALARM is not set -# CONFIG_QCOM_SPMI_VADC is not set -# CONFIG_QCOM_SSC_BLOCK_BUS is not set -# CONFIG_QED is not set -# CONFIG_QFMT_V1 is not set -# CONFIG_QLA3XXX is not set -# CONFIG_QLCNIC is not set -# CONFIG_QLGE is not set -# CONFIG_QNX4FS_FS is not set -# CONFIG_QNX6FS_FS is not set -# CONFIG_QORIQ_CPUFREQ is not set -# CONFIG_QORIQ_THERMAL is not set -# CONFIG_QRTR is not set -# CONFIG_QRTR_MHI is not set -# CONFIG_QRTR_TUN is not set -# CONFIG_QSEMI_PHY is not set -# CONFIG_QUEUED_LOCK_STAT is not set -# CONFIG_QUICC_ENGINE is not set -# CONFIG_QUOTA is not set -# CONFIG_QUOTACTL is not set -# CONFIG_QUOTA_DEBUG is not set -# CONFIG_QUOTA_NETLINK_INTERFACE is not set -# CONFIG_R3964 is not set -# CONFIG_R6040 is not set -# CONFIG_R8169 is not set -# CONFIG_R8188EU is not set -# CONFIG_R8712U is not set -# CONFIG_R8723AU is not set -# CONFIG_RADIO_ADAPTERS is not set -# CONFIG_RADIO_AZTECH is not set -# CONFIG_RADIO_CADET is not set -# CONFIG_RADIO_GEMTEK is not set -# CONFIG_RADIO_MAXIRADIO is not set -# CONFIG_RADIO_RTRACK is not set -# CONFIG_RADIO_RTRACK2 is not set -# CONFIG_RADIO_SF16FMI is not set -# CONFIG_RADIO_SF16FMR2 is not set -# CONFIG_RADIO_TERRATEC is not set -# CONFIG_RADIO_TRUST is not set -# CONFIG_RADIO_TYPHOON is not set -# CONFIG_RADIO_ZOLTRIX is not set -# CONFIG_RAID6_PQ_BENCHMARK is not set -# CONFIG_RAID_ATTRS is not set -# CONFIG_RALINK is not set -# CONFIG_RANDOM_KMALLOC_CACHES is not set -# CONFIG_RANDOM32_SELFTEST is not set -# CONFIG_RANDOMIZE_BASE is not set -CONFIG_RANDOMIZE_KSTACK_OFFSET=y -# CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT is not set -CONFIG_RANDOM_TRUST_BOOTLOADER=y -CONFIG_RANDOM_TRUST_CPU=y -# CONFIG_RANDSTRUCT_NONE is not set -# CONFIG_RAPIDIO is not set -# CONFIG_RAS is not set -# CONFIG_RBTREE_TEST is not set -# CONFIG_RCU_BOOST is not set -CONFIG_RCU_CPU_STALL_TIMEOUT=60 -# CONFIG_RCU_EQS_DEBUG is not set -# CONFIG_RCU_EXPEDITE_BOOT is not set -# CONFIG_RCU_EXPERT is not set -CONFIG_RCU_EXP_CPU_STALL_TIMEOUT=0 -CONFIG_RCU_KTHREAD_PRIO=0 -CONFIG_RCU_NEED_SEGCBLIST=y -# CONFIG_RCU_PERF_TEST is not set -# CONFIG_RCU_REF_SCALE_TEST is not set -# CONFIG_RCU_SCALE_TEST is not set -CONFIG_RCU_STALL_COMMON=y -# CONFIG_RCU_STRICT_GRACE_PERIOD is not set -# CONFIG_RCU_TORTURE_TEST is not set -CONFIG_RCU_TORTURE_TEST_SLOW_INIT_DELAY=3 -# CONFIG_RCU_TRACE is not set -# CONFIG_RC_ATI_REMOTE is not set -# CONFIG_RC_CORE is not set -# CONFIG_RC_DECODERS is not set -# CONFIG_RC_LOOPBACK is not set -# CONFIG_RC_MAP is not set -# CONFIG_RC_XBOX_DVD is not set -# CONFIG_RDS is not set -# CONFIG_RD_BZIP2 is not set -# CONFIG_RD_GZIP is not set -# CONFIG_RD_LZ4 is not set -# CONFIG_RD_LZMA is not set -# CONFIG_RD_LZO is not set -# CONFIG_RD_XZ is not set -# CONFIG_RD_ZSTD is not set -# CONFIG_READABLE_ASM is not set -# CONFIG_READ_ONLY_THP_FOR_FS is not set -# CONFIG_REALTEK_PHY is not set -# CONFIG_REDWOOD is not set -# CONFIG_REED_SOLOMON is not set -# CONFIG_REED_SOLOMON_DEC8 is not set -# CONFIG_REED_SOLOMON_ENC8 is not set -# CONFIG_REED_SOLOMON_TEST is not set -# CONFIG_REGMAP is not set -# CONFIG_REGMAP_I2C is not set -# CONFIG_REGMAP_MMIO is not set -# CONFIG_REGMAP_SPI is not set -# CONFIG_REGULATOR is not set -# CONFIG_REGULATOR_88PG86X is not set -# CONFIG_REGULATOR_ACT8865 is not set -# CONFIG_REGULATOR_AD5398 is not set -# CONFIG_REGULATOR_ANATOP is not set -# CONFIG_REGULATOR_DA9121 is not set -# CONFIG_REGULATOR_DA9210 is not set -# CONFIG_REGULATOR_DA9211 is not set -# CONFIG_REGULATOR_DEBUG is not set -# CONFIG_REGULATOR_FAN53555 is not set -# CONFIG_REGULATOR_FAN53880 is not set -# CONFIG_REGULATOR_FIXED_VOLTAGE is not set -# CONFIG_REGULATOR_GPIO is not set -# CONFIG_REGULATOR_ISL6271A is not set -# CONFIG_REGULATOR_ISL9305 is not set -# CONFIG_REGULATOR_LP3971 is not set -# CONFIG_REGULATOR_LP3972 is not set -# CONFIG_REGULATOR_LP872X is not set -# CONFIG_REGULATOR_LP8755 is not set -# CONFIG_REGULATOR_LTC3589 is not set -# CONFIG_REGULATOR_LTC3676 is not set -# CONFIG_REGULATOR_MAX1586 is not set -# CONFIG_REGULATOR_MAX20086 is not set -# CONFIG_REGULATOR_MAX77620 is not set -# CONFIG_REGULATOR_MAX77826 is not set -# CONFIG_REGULATOR_MAX8649 is not set -# CONFIG_REGULATOR_MAX8660 is not set -# CONFIG_REGULATOR_MAX8893 is not set -# CONFIG_REGULATOR_MAX8952 is not set -# CONFIG_REGULATOR_MAX8973 is not set -# CONFIG_REGULATOR_MCP16502 is not set -# CONFIG_REGULATOR_MP5416 is not set -# CONFIG_REGULATOR_MP8859 is not set -# CONFIG_REGULATOR_MP886X is not set -# CONFIG_REGULATOR_MPQ7920 is not set -# CONFIG_REGULATOR_MT6311 is not set -# CONFIG_REGULATOR_MT6315 is not set -# CONFIG_REGULATOR_MT6359 is not set -# CONFIG_REGULATOR_PCA9450 is not set -# CONFIG_REGULATOR_PF8X00 is not set -# CONFIG_REGULATOR_PFUZE100 is not set -# CONFIG_REGULATOR_PV88060 is not set -# CONFIG_REGULATOR_PV88080 is not set -# CONFIG_REGULATOR_PV88090 is not set -# CONFIG_REGULATOR_PWM is not set -# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_ATTINY is not set -# CONFIG_REGULATOR_RT4801 is not set -# CONFIG_REGULATOR_RT5190A is not set -# CONFIG_REGULATOR_RT5759 is not set -# CONFIG_REGULATOR_RT6160 is not set -# CONFIG_REGULATOR_RT6245 is not set -# CONFIG_REGULATOR_RTMV20 is not set -# CONFIG_REGULATOR_RTQ2134 is not set -# CONFIG_REGULATOR_RTQ6752 is not set -# CONFIG_REGULATOR_SLG51000 is not set -# CONFIG_REGULATOR_SY8106A is not set -# CONFIG_REGULATOR_SY8824X is not set -# CONFIG_REGULATOR_SY8827N is not set -# CONFIG_REGULATOR_TI_ABB is not set -# CONFIG_REGULATOR_TPS51632 is not set -# CONFIG_REGULATOR_TPS62360 is not set -# CONFIG_REGULATOR_TPS6286X is not set -# CONFIG_REGULATOR_TPS65023 is not set -# CONFIG_REGULATOR_TPS6507X is not set -# CONFIG_REGULATOR_TPS65132 is not set -# CONFIG_REGULATOR_TPS6524X is not set -# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set -# CONFIG_REGULATOR_VCTRL is not set -# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set -# CONFIG_REISERFS_CHECK is not set -# CONFIG_REISERFS_FS is not set -# CONFIG_REISERFS_FS_POSIX_ACL is not set -# CONFIG_REISERFS_FS_SECURITY is not set -CONFIG_REISERFS_FS_XATTR=y -# CONFIG_REISERFS_PROC_INFO is not set -# CONFIG_RELAY is not set -# CONFIG_RELOCATABLE is not set -# CONFIG_REMOTEPROC is not set -# CONFIG_RENESAS_PHY is not set -# CONFIG_RESET_ATH79 is not set -# CONFIG_RESET_BERLIN is not set -# CONFIG_RESET_BRCMSTB_RESCAL is not set -# CONFIG_RESET_CONTROLLER is not set -# CONFIG_RESET_IMX7 is not set -# CONFIG_RESET_INTEL_GW is not set -# CONFIG_RESET_LANTIQ is not set -# CONFIG_RESET_LPC18XX is not set -# CONFIG_RESET_MESON is not set -# CONFIG_RESET_PISTACHIO is not set -# CONFIG_RESET_SIMPLE is not set -# CONFIG_RESET_SOCFPGA is not set -# CONFIG_RESET_STM32 is not set -# CONFIG_RESET_SUNXI is not set -# CONFIG_RESET_TEGRA_BPMP is not set -# CONFIG_RESET_TI_SYSCON is not set -# CONFIG_RESET_TI_TPS380X is not set -# CONFIG_RESET_ZYNQ is not set -# CONFIG_RFD77402 is not set -# CONFIG_RFD_FTL is not set -CONFIG_RFKILL=y -# CONFIG_RFKILL_FULL is not set -# CONFIG_RFKILL_GPIO is not set -# CONFIG_RFKILL_INPUT is not set -# CONFIG_RFKILL_LEDS is not set -# CONFIG_RFKILL_REGULATOR is not set -# CONFIG_RICHTEK_RTQ6056 is not set -# CONFIG_RING_BUFFER_BENCHMARK is not set -# CONFIG_RING_BUFFER_STARTUP_TEST is not set -# CONFIG_RING_BUFFER_VALIDATE_TIME_DELTAS is not set -# CONFIG_RMI4_CORE is not set -# CONFIG_RMNET is not set -# CONFIG_ROCKCHIP_PHY is not set -# CONFIG_ROCKER is not set -# CONFIG_ROMFS_FS is not set -# CONFIG_ROSE is not set -# CONFIG_RPCSEC_GSS_KRB5 is not set -# CONFIG_RPMSG_QCOM_GLINK_RPM is not set -# CONFIG_RPMSG_VIRTIO is not set -# CONFIG_RPMSG_WWAN_CTRL is not set -# CONFIG_RPR0521 is not set -# CONFIG_RSEQ is not set -# CONFIG_RT2X00 is not set -# CONFIG_RTC_CLASS is not set -# CONFIG_RTC_DEBUG is not set -# CONFIG_RTC_DRV_ABB5ZES3 is not set -# CONFIG_RTC_DRV_ABEOZ9 is not set -# CONFIG_RTC_DRV_ABX80X is not set -# CONFIG_RTC_DRV_ARMADA38X is not set -# CONFIG_RTC_DRV_AU1XXX is not set -# CONFIG_RTC_DRV_BQ32K is not set -# CONFIG_RTC_DRV_BQ4802 is not set -# CONFIG_RTC_DRV_CADENCE is not set -CONFIG_RTC_DRV_CMOS=y -# CONFIG_RTC_DRV_DS1286 is not set -# CONFIG_RTC_DRV_DS1302 is not set -# CONFIG_RTC_DRV_DS1305 is not set -# CONFIG_RTC_DRV_DS1307 is not set -# CONFIG_RTC_DRV_DS1307_CENTURY is not set -# CONFIG_RTC_DRV_DS1307_HWMON is not set -# CONFIG_RTC_DRV_DS1343 is not set -# CONFIG_RTC_DRV_DS1347 is not set -# CONFIG_RTC_DRV_DS1374 is not set -# CONFIG_RTC_DRV_DS1390 is not set -# CONFIG_RTC_DRV_DS1511 is not set -# CONFIG_RTC_DRV_DS1553 is not set -# CONFIG_RTC_DRV_DS1672 is not set -# CONFIG_RTC_DRV_DS1685_FAMILY is not set -# CONFIG_RTC_DRV_DS1742 is not set -# CONFIG_RTC_DRV_DS2404 is not set -# CONFIG_RTC_DRV_DS3232 is not set -# CONFIG_RTC_DRV_DS3234 is not set -# CONFIG_RTC_DRV_EM3027 is not set -# CONFIG_RTC_DRV_EP93XX is not set -# CONFIG_RTC_DRV_FM3130 is not set -# CONFIG_RTC_DRV_FTRTC010 is not set -# CONFIG_RTC_DRV_GENERIC is not set -# CONFIG_RTC_DRV_GOLDFISH is not set -# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set -# CONFIG_RTC_DRV_HYM8563 is not set -# CONFIG_RTC_DRV_ISL12022 is not set -# CONFIG_RTC_DRV_ISL12026 is not set -# CONFIG_RTC_DRV_ISL12057 is not set -# CONFIG_RTC_DRV_ISL1208 is not set -# CONFIG_RTC_DRV_JZ4740 is not set -# CONFIG_RTC_DRV_M41T80 is not set -# CONFIG_RTC_DRV_M41T93 is not set -# CONFIG_RTC_DRV_M41T94 is not set -# CONFIG_RTC_DRV_M48T35 is not set -# CONFIG_RTC_DRV_M48T59 is not set -# CONFIG_RTC_DRV_M48T86 is not set -# CONFIG_RTC_DRV_MAX6900 is not set -# CONFIG_RTC_DRV_MAX6902 is not set -# CONFIG_RTC_DRV_MAX6916 is not set -# CONFIG_RTC_DRV_MAX77686 is not set -# CONFIG_RTC_DRV_MCP795 is not set -# CONFIG_RTC_DRV_MOXART is not set -# CONFIG_RTC_DRV_MPC5121 is not set -# CONFIG_RTC_DRV_MSM6242 is not set -# CONFIG_RTC_DRV_MT2712 is not set -# CONFIG_RTC_DRV_NCT3018Y is not set -# CONFIG_RTC_DRV_OMAP is not set -# CONFIG_RTC_DRV_PCF2123 is not set -# CONFIG_RTC_DRV_PCF2127 is not set -# CONFIG_RTC_DRV_PCF85063 is not set -# CONFIG_RTC_DRV_PCF8523 is not set -# CONFIG_RTC_DRV_PCF85363 is not set -# CONFIG_RTC_DRV_PCF8563 is not set -# CONFIG_RTC_DRV_PCF8583 is not set -# CONFIG_RTC_DRV_PL030 is not set -# CONFIG_RTC_DRV_PL031 is not set -# CONFIG_RTC_DRV_PS3 is not set -# CONFIG_RTC_DRV_PT7C4338 is not set -# CONFIG_RTC_DRV_R7301 is not set -# CONFIG_RTC_DRV_R9701 is not set -# CONFIG_RTC_DRV_RP5C01 is not set -# CONFIG_RTC_DRV_RS5C348 is not set -# CONFIG_RTC_DRV_RS5C372 is not set -# CONFIG_RTC_DRV_RTC7301 is not set -# CONFIG_RTC_DRV_RV3028 is not set -# CONFIG_RTC_DRV_RV3029C2 is not set -# CONFIG_RTC_DRV_RV3032 is not set -# CONFIG_RTC_DRV_RV8803 is not set -# CONFIG_RTC_DRV_RX4581 is not set -# CONFIG_RTC_DRV_RX6110 is not set -# CONFIG_RTC_DRV_RX8010 is not set -# CONFIG_RTC_DRV_RX8025 is not set -# CONFIG_RTC_DRV_RX8581 is not set -# CONFIG_RTC_DRV_S35390A is not set -# CONFIG_RTC_DRV_SD3078 is not set -# CONFIG_RTC_DRV_SNVS is not set -# CONFIG_RTC_DRV_STK17TA8 is not set -# CONFIG_RTC_DRV_SUN6I is not set -# CONFIG_RTC_DRV_TEGRA is not set -# CONFIG_RTC_DRV_TEST is not set -# CONFIG_RTC_DRV_V3020 is not set -# CONFIG_RTC_DRV_X1205 is not set -# CONFIG_RTC_DRV_XGENE is not set -# CONFIG_RTC_DRV_ZYNQMP is not set -CONFIG_RTC_HCTOSYS=y -CONFIG_RTC_HCTOSYS_DEVICE="rtc0" -CONFIG_RTC_INTF_DEV=y -# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set -CONFIG_RTC_INTF_PROC=y -CONFIG_RTC_INTF_SYSFS=y -CONFIG_RTC_LIB=y -# CONFIG_RTC_NVMEM is not set -CONFIG_RTC_SYSTOHC=y -CONFIG_RTC_SYSTOHC_DEVICE="rtc0" -# CONFIG_RTL8180 is not set -# CONFIG_RTL8187 is not set -# CONFIG_RTL8192E is not set -# CONFIG_RTL8192U is not set -# CONFIG_RTL8306_PHY is not set -# CONFIG_RTL8366RB_PHY is not set -# CONFIG_RTL8366S_PHY is not set -# CONFIG_RTL8366_SMI is not set -# CONFIG_RTL8366_SMI_DEBUG_FS is not set -# CONFIG_RTL8367B_PHY is not set -# CONFIG_RTL8367_PHY is not set -# CONFIG_RTLLIB is not set -# CONFIG_RTL_CARDS is not set -# CONFIG_RTS5208 is not set -CONFIG_RT_MUTEXES=y -# CONFIG_RUNTIME_DEBUG is not set -CONFIG_RUNTIME_TESTING_MENU=y -# CONFIG_RV is not set -CONFIG_RWSEM_GENERIC_SPINLOCK=y -CONFIG_RXKAD=y -# CONFIG_S2IO is not set -# CONFIG_SAMPLES is not set -# CONFIG_SAMSUNG_LAPTOP is not set -# CONFIG_SATA_ACARD_AHCI is not set -# CONFIG_SATA_AHCI is not set -# CONFIG_SATA_AHCI_PLATFORM is not set -# CONFIG_SATA_DWC is not set -# CONFIG_SATA_DWC_OLD_DMA is not set -# CONFIG_SATA_FSL is not set -# CONFIG_SATA_HIGHBANK is not set -# CONFIG_SATA_HOST is not set -# CONFIG_SATA_INIC162X is not set -CONFIG_SATA_MOBILE_LPM_POLICY=0 -# CONFIG_SATA_MV is not set -# CONFIG_SATA_NV is not set -# CONFIG_SATA_PMP is not set -# CONFIG_SATA_PROMISE is not set -# CONFIG_SATA_QSTOR is not set -# CONFIG_SATA_RCAR is not set -# CONFIG_SATA_SIL is not set -# CONFIG_SATA_SIL24 is not set -# CONFIG_SATA_SIS is not set -# CONFIG_SATA_SVW is not set -# CONFIG_SATA_SX4 is not set -# CONFIG_SATA_ULI is not set -# CONFIG_SATA_VIA is not set -# CONFIG_SATA_VITESSE is not set -# CONFIG_SBC_FITPC2_WATCHDOG is not set -CONFIG_SBITMAP=y -# CONFIG_SC92031 is not set -# CONFIG_SCA3000 is not set -# CONFIG_SCA3300 is not set -# CONFIG_SCACHE_DEBUGFS is not set -# CONFIG_SCC is not set -# CONFIG_SCD30_CORE is not set -# CONFIG_SCD4X is not set -# CONFIG_SCF_TORTURE_TEST is not set -# CONFIG_SCHEDSTATS is not set -# CONFIG_SCHED_AUTOGROUP is not set -# CONFIG_SCHED_CLUSTER is not set -# CONFIG_SCHED_DEBUG is not set -CONFIG_SCHED_HRTICK=y -# CONFIG_SCHED_MC is not set -CONFIG_SCHED_OMIT_FRAME_POINTER=y -# CONFIG_SCHED_SMT is not set -CONFIG_SCHED_STACK_END_CHECK=y -# CONFIG_SCHED_TRACER is not set -# CONFIG_SCR24X is not set -# CONFIG_SCSI is not set -# CONFIG_SCSI_3W_9XXX is not set -# CONFIG_SCSI_3W_SAS is not set -# CONFIG_SCSI_7000FASST is not set -# CONFIG_SCSI_AACRAID is not set -# CONFIG_SCSI_ACARD is not set -# CONFIG_SCSI_ADVANSYS is not set -# CONFIG_SCSI_AHA152X is not set -# CONFIG_SCSI_AHA1542 is not set -# CONFIG_SCSI_AIC79XX is not set -# CONFIG_SCSI_AIC7XXX is not set -# CONFIG_SCSI_AIC94XX is not set -# CONFIG_SCSI_AM53C974 is not set -# CONFIG_SCSI_ARCMSR is not set -# CONFIG_SCSI_BFA_FC is not set -# CONFIG_SCSI_BNX2X_FCOE is not set -# CONFIG_SCSI_BNX2_ISCSI is not set -# CONFIG_SCSI_BUSLOGIC is not set -# CONFIG_SCSI_CHELSIO_FCOE is not set -# CONFIG_SCSI_CONSTANTS is not set -# CONFIG_SCSI_CXGB3_ISCSI is not set -# CONFIG_SCSI_CXGB4_ISCSI is not set -# CONFIG_SCSI_DC395x is not set -# CONFIG_SCSI_DEBUG is not set -# CONFIG_SCSI_DH is not set -CONFIG_SCSI_DMA=y -# CONFIG_SCSI_DMX3191D is not set -# CONFIG_SCSI_DPT_I2O is not set -# CONFIG_SCSI_DTC3280 is not set -# CONFIG_SCSI_EATA is not set -# CONFIG_SCSI_ESAS2R is not set -# CONFIG_SCSI_FC_ATTRS is not set -# CONFIG_SCSI_FDOMAIN_PCI is not set -# CONFIG_SCSI_FUTURE_DOMAIN is not set -# CONFIG_SCSI_GDTH is not set -# CONFIG_SCSI_GENERIC_NCR5380 is not set -# CONFIG_SCSI_GENERIC_NCR5380_MMIO is not set -# CONFIG_SCSI_HISI_SAS is not set -# CONFIG_SCSI_HPSA is not set -# CONFIG_SCSI_HPTIOP is not set -# CONFIG_SCSI_IN2000 is not set -# CONFIG_SCSI_INIA100 is not set -# CONFIG_SCSI_INITIO is not set -# CONFIG_SCSI_IPR is not set -# CONFIG_SCSI_IPS is not set -# CONFIG_SCSI_ISCI is not set -# CONFIG_SCSI_ISCSI_ATTRS is not set -# CONFIG_SCSI_LOGGING is not set -CONFIG_SCSI_LOWLEVEL=y -# CONFIG_SCSI_LOWLEVEL_PCMCIA is not set -# CONFIG_SCSI_LPFC is not set -CONFIG_SCSI_MOD=y -# CONFIG_SCSI_MPI3MR is not set -# CONFIG_SCSI_MPT2SAS is not set -# CONFIG_SCSI_MPT3SAS is not set -# CONFIG_SCSI_MQ_DEFAULT is not set -# CONFIG_SCSI_MVSAS is not set -# CONFIG_SCSI_MVSAS_DEBUG is not set -# CONFIG_SCSI_MVUMI is not set -# CONFIG_SCSI_MYRB is not set -# CONFIG_SCSI_MYRS is not set -# CONFIG_SCSI_NCR53C406A is not set -# CONFIG_SCSI_NETLINK is not set -# CONFIG_SCSI_NSP32 is not set -# CONFIG_SCSI_OSD_INITIATOR is not set -# CONFIG_SCSI_PAS16 is not set -# CONFIG_SCSI_PM8001 is not set -# CONFIG_SCSI_PMCRAID is not set -CONFIG_SCSI_PROC_FS=y -# CONFIG_SCSI_QLA_FC is not set -# CONFIG_SCSI_QLA_ISCSI is not set -# CONFIG_SCSI_QLOGIC_1280 is not set -# CONFIG_SCSI_QLOGIC_FAS is not set -# CONFIG_SCSI_SAS_ATTRS is not set -# CONFIG_SCSI_SAS_LIBSAS is not set -# CONFIG_SCSI_SCAN_ASYNC is not set -# CONFIG_SCSI_SMARTPQI is not set -# CONFIG_SCSI_SNIC is not set -# CONFIG_SCSI_SPI_ATTRS is not set -# CONFIG_SCSI_SRP_ATTRS is not set -# CONFIG_SCSI_STEX is not set -# CONFIG_SCSI_SYM53C416 is not set -# CONFIG_SCSI_SYM53C8XX_2 is not set -# CONFIG_SCSI_T128 is not set -# CONFIG_SCSI_U14_34F is not set -# CONFIG_SCSI_UFSHCD is not set -# CONFIG_SCSI_ULTRASTOR is not set -# CONFIG_SCSI_VIRTIO is not set -# CONFIG_SCSI_WD719X is not set -# CONFIG_SC_CAMCC_7180 is not set -# CONFIG_SC_DISPCC_7280 is not set -# CONFIG_SC_GCC_7280 is not set -# CONFIG_SC_GCC_8180X is not set -# CONFIG_SC_GPUCC_7280 is not set -# CONFIG_SC_GPUCC_8280XP is not set -# CONFIG_SC_VIDEOCC_7280 is not set -# CONFIG_SCx200_ACB is not set -# CONFIG_SDIO_UART is not set -# CONFIG_SDM_GPUCC_660 is not set -# CONFIG_SDM_MMCC_660 is not set -# CONFIG_SDR_MAX2175 is not set -# CONFIG_SDR_PLATFORM_DRIVERS is not set -# CONFIG_SDX_GCC_55 is not set -# CONFIG_SD_ADC_MODULATOR is not set -# CONFIG_SECCOMP is not set -# CONFIG_SECCOMP_CACHE_DEBUG is not set -CONFIG_SECRETMEM=y -CONFIG_SECTION_MISMATCH_WARN_ONLY=y -# CONFIG_SECURITY is not set -# CONFIG_SECURITYFS is not set -# CONFIG_SECURITY_APPARMOR is not set -CONFIG_SECURITY_DMESG_RESTRICT=y -# CONFIG_SECURITY_LANDLOCK is not set -# CONFIG_SECURITY_LOADPIN is not set -# CONFIG_SECURITY_LOCKDOWN_LSM is not set -# CONFIG_SECURITY_NETWORK_XFRM is not set -# CONFIG_SECURITY_PATH is not set -# CONFIG_SECURITY_SAFESETID is not set -# CONFIG_SECURITY_SELINUX_AVC_STATS is not set -# CONFIG_SECURITY_SELINUX_BOOTPARAM is not set -CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 -# CONFIG_SECURITY_SELINUX_DEVELOP is not set -# CONFIG_SECURITY_SELINUX_DISABLE is not set -# CONFIG_SECURITY_SMACK is not set -# CONFIG_SECURITY_TOMOYO is not set -# CONFIG_SECURITY_YAMA is not set -CONFIG_SELECT_MEMORY_MODEL=y -# CONFIG_SENSEAIR_SUNRISE_CO2 is not set -# CONFIG_SENSIRION_SGP30 is not set -# CONFIG_SENSIRION_SGP40 is not set -# CONFIG_SENSORS_ABITUGURU is not set -# CONFIG_SENSORS_ABITUGURU3 is not set -# CONFIG_SENSORS_ACPI_POWER is not set -# CONFIG_SENSORS_AD7314 is not set -# CONFIG_SENSORS_AD7414 is not set -# CONFIG_SENSORS_AD7418 is not set -# CONFIG_SENSORS_ADC128D818 is not set -# CONFIG_SENSORS_ADCXX is not set -# CONFIG_SENSORS_ADM1021 is not set -# CONFIG_SENSORS_ADM1025 is not set -# CONFIG_SENSORS_ADM1026 is not set -# CONFIG_SENSORS_ADM1029 is not set -# CONFIG_SENSORS_ADM1031 is not set -# CONFIG_SENSORS_ADM1177 is not set -# CONFIG_SENSORS_ADM1266 is not set -# CONFIG_SENSORS_ADM1275 is not set -# CONFIG_SENSORS_ADM9240 is not set -# CONFIG_SENSORS_ADS1015 is not set -# CONFIG_SENSORS_ADS7828 is not set -# CONFIG_SENSORS_ADS7871 is not set -# CONFIG_SENSORS_ADT7310 is not set -# CONFIG_SENSORS_ADT7410 is not set -# CONFIG_SENSORS_ADT7411 is not set -# CONFIG_SENSORS_ADT7462 is not set -# CONFIG_SENSORS_ADT7470 is not set -# CONFIG_SENSORS_ADT7475 is not set -# CONFIG_SENSORS_AHT10 is not set -# CONFIG_SENSORS_AMC6821 is not set -# CONFIG_SENSORS_APDS990X is not set -# CONFIG_SENSORS_APPLESMC is not set -# CONFIG_SENSORS_AQUACOMPUTER_D5NEXT is not set -# CONFIG_SENSORS_AS370 is not set -# CONFIG_SENSORS_ASB100 is not set -# CONFIG_SENSORS_ASC7621 is not set -# CONFIG_SENSORS_ASPEED is not set -# CONFIG_SENSORS_ASUS_WMI is not set -# CONFIG_SENSORS_ATK0110 is not set -# CONFIG_SENSORS_ATXP1 is not set -# CONFIG_SENSORS_AXI_FAN_CONTROL is not set -# CONFIG_SENSORS_BEL_PFE is not set -# CONFIG_SENSORS_BH1770 is not set -# CONFIG_SENSORS_BH1780 is not set -# CONFIG_SENSORS_BPA_RS600 is not set -# CONFIG_SENSORS_CORETEMP is not set -# CONFIG_SENSORS_CORSAIR_CPRO is not set -# CONFIG_SENSORS_CORSAIR_PSU is not set -# CONFIG_SENSORS_DELL_SMM is not set -# CONFIG_SENSORS_DELTA_AHE50DC_FAN is not set -# CONFIG_SENSORS_DME1737 is not set -# CONFIG_SENSORS_DPS920AB is not set -# CONFIG_SENSORS_DRIVETEMP is not set -# CONFIG_SENSORS_DS1621 is not set -# CONFIG_SENSORS_DS620 is not set -# CONFIG_SENSORS_EMC1403 is not set -# CONFIG_SENSORS_EMC2103 is not set -# CONFIG_SENSORS_EMC2305 is not set -# CONFIG_SENSORS_EMC6W201 is not set -# CONFIG_SENSORS_F71805F is not set -# CONFIG_SENSORS_F71882FG is not set -# CONFIG_SENSORS_F75375S is not set -# CONFIG_SENSORS_FAM15H_POWER is not set -# CONFIG_SENSORS_FSCHMD is not set -# CONFIG_SENSORS_FSP_3Y is not set -# CONFIG_SENSORS_FTSTEUTATES is not set -# CONFIG_SENSORS_G760A is not set -# CONFIG_SENSORS_G762 is not set -# CONFIG_SENSORS_GL518SM is not set -# CONFIG_SENSORS_GL520SM is not set -# CONFIG_SENSORS_GPIO_FAN is not set -# CONFIG_SENSORS_GSC is not set -# CONFIG_SENSORS_HDAPS is not set -# CONFIG_SENSORS_HIH6130 is not set -# CONFIG_SENSORS_HMC5843 is not set -# CONFIG_SENSORS_HMC5843_I2C is not set -# CONFIG_SENSORS_HMC5843_SPI is not set -# CONFIG_SENSORS_HTU21 is not set -# CONFIG_SENSORS_I5500 is not set -# CONFIG_SENSORS_I5K_AMB is not set -# CONFIG_SENSORS_IBM_CFFPS is not set -# CONFIG_SENSORS_IIO_HWMON is not set -# CONFIG_SENSORS_INA209 is not set -# CONFIG_SENSORS_INA238 is not set -# CONFIG_SENSORS_INA2XX is not set -# CONFIG_SENSORS_INA3221 is not set -# CONFIG_SENSORS_INSPUR_IPSPS is not set -# CONFIG_SENSORS_IR35221 is not set -# CONFIG_SENSORS_IR36021 is not set -# CONFIG_SENSORS_IR38064 is not set -# CONFIG_SENSORS_IRPS5401 is not set -# CONFIG_SENSORS_ISL29018 is not set -# CONFIG_SENSORS_ISL29028 is not set -# CONFIG_SENSORS_ISL68137 is not set -# CONFIG_SENSORS_IT87 is not set -# CONFIG_SENSORS_JC42 is not set -# CONFIG_SENSORS_K10TEMP is not set -# CONFIG_SENSORS_K8TEMP is not set -# CONFIG_SENSORS_LINEAGE is not set -# CONFIG_SENSORS_LIS3LV02D is not set -# CONFIG_SENSORS_LIS3_I2C is not set -# CONFIG_SENSORS_LIS3_SPI is not set -# CONFIG_SENSORS_LM25066 is not set -# CONFIG_SENSORS_LM63 is not set -# CONFIG_SENSORS_LM70 is not set -# CONFIG_SENSORS_LM73 is not set -# CONFIG_SENSORS_LM75 is not set -# CONFIG_SENSORS_LM77 is not set -# CONFIG_SENSORS_LM78 is not set -# CONFIG_SENSORS_LM80 is not set -# CONFIG_SENSORS_LM83 is not set -# CONFIG_SENSORS_LM85 is not set -# CONFIG_SENSORS_LM87 is not set -# CONFIG_SENSORS_LM90 is not set -# CONFIG_SENSORS_LM92 is not set -# CONFIG_SENSORS_LM93 is not set -# CONFIG_SENSORS_LM95234 is not set -# CONFIG_SENSORS_LM95241 is not set -# CONFIG_SENSORS_LM95245 is not set -# CONFIG_SENSORS_LT7182S is not set -# CONFIG_SENSORS_LTC2945 is not set -# CONFIG_SENSORS_LTC2947_I2C is not set -# CONFIG_SENSORS_LTC2947_SPI is not set -# CONFIG_SENSORS_LTC2978 is not set -# CONFIG_SENSORS_LTC2990 is not set -# CONFIG_SENSORS_LTC2992 is not set -# CONFIG_SENSORS_LTC3815 is not set -# CONFIG_SENSORS_LTC4151 is not set -# CONFIG_SENSORS_LTC4215 is not set -# CONFIG_SENSORS_LTC4222 is not set -# CONFIG_SENSORS_LTC4245 is not set -# CONFIG_SENSORS_LTC4260 is not set -# CONFIG_SENSORS_LTC4261 is not set -# CONFIG_SENSORS_LTQ_CPUTEMP is not set -# CONFIG_SENSORS_MAX1111 is not set -# CONFIG_SENSORS_MAX127 is not set -# CONFIG_SENSORS_MAX15301 is not set -# CONFIG_SENSORS_MAX16064 is not set -# CONFIG_SENSORS_MAX16065 is not set -# CONFIG_SENSORS_MAX1619 is not set -# CONFIG_SENSORS_MAX16601 is not set -# CONFIG_SENSORS_MAX1668 is not set -# CONFIG_SENSORS_MAX197 is not set -# CONFIG_SENSORS_MAX20730 is not set -# CONFIG_SENSORS_MAX20751 is not set -# CONFIG_SENSORS_MAX31722 is not set -# CONFIG_SENSORS_MAX31730 is not set -# CONFIG_SENSORS_MAX31760 is not set -# CONFIG_SENSORS_MAX31785 is not set -# CONFIG_SENSORS_MAX31790 is not set -# CONFIG_SENSORS_MAX34440 is not set -# CONFIG_SENSORS_MAX6620 is not set -# CONFIG_SENSORS_MAX6621 is not set -# CONFIG_SENSORS_MAX6639 is not set -# CONFIG_SENSORS_MAX6642 is not set -# CONFIG_SENSORS_MAX6650 is not set -# CONFIG_SENSORS_MAX6697 is not set -# CONFIG_SENSORS_MAX8688 is not set -# CONFIG_SENSORS_MCP3021 is not set -# CONFIG_SENSORS_MP2888 is not set -# CONFIG_SENSORS_MP2975 is not set -# CONFIG_SENSORS_MP5023 is not set -# CONFIG_SENSORS_MR75203 is not set -# CONFIG_SENSORS_NCT6683 is not set -# CONFIG_SENSORS_NCT6775 is not set -# CONFIG_SENSORS_NCT6775_I2C is not set -# CONFIG_SENSORS_NCT7802 is not set -# CONFIG_SENSORS_NCT7904 is not set -# CONFIG_SENSORS_NPCM7XX is not set -# CONFIG_SENSORS_NSA320 is not set -# CONFIG_SENSORS_NTC_THERMISTOR is not set -# CONFIG_SENSORS_NZXT_KRAKEN2 is not set -# CONFIG_SENSORS_NZXT_SMART2 is not set -# CONFIG_SENSORS_OCC_P8_I2C is not set -# CONFIG_SENSORS_PC87360 is not set -# CONFIG_SENSORS_PC87427 is not set -# CONFIG_SENSORS_PCF8591 is not set -# CONFIG_SENSORS_PIM4328 is not set -# CONFIG_SENSORS_PLI1209BC is not set -# CONFIG_SENSORS_PM6764TR is not set -# CONFIG_SENSORS_PMBUS is not set -# CONFIG_SENSORS_POWR1220 is not set -# CONFIG_SENSORS_PWM_FAN is not set -# CONFIG_SENSORS_PXE1610 is not set -# CONFIG_SENSORS_Q54SJ108A2 is not set -# CONFIG_SENSORS_RM3100_I2C is not set -# CONFIG_SENSORS_RM3100_SPI is not set -# CONFIG_SENSORS_SBRMI is not set -# CONFIG_SENSORS_SBTSI is not set -# CONFIG_SENSORS_SCH5627 is not set -# CONFIG_SENSORS_SCH5636 is not set -# CONFIG_SENSORS_SCH56XX_COMMON is not set -# CONFIG_SENSORS_SHT15 is not set -# CONFIG_SENSORS_SHT21 is not set -# CONFIG_SENSORS_SHT3x is not set -# CONFIG_SENSORS_SHT4x is not set -# CONFIG_SENSORS_SHTC1 is not set -# CONFIG_SENSORS_SIS5595 is not set -# CONFIG_SENSORS_SMM665 is not set -# CONFIG_SENSORS_SMSC47B397 is not set -# CONFIG_SENSORS_SMSC47M1 is not set -# CONFIG_SENSORS_SMSC47M192 is not set -# CONFIG_SENSORS_STPDDC60 is not set -# CONFIG_SENSORS_STTS751 is not set -# CONFIG_SENSORS_TC654 is not set -# CONFIG_SENSORS_TC74 is not set -# CONFIG_SENSORS_THMC50 is not set -# CONFIG_SENSORS_TMP102 is not set -# CONFIG_SENSORS_TMP103 is not set -# CONFIG_SENSORS_TMP108 is not set -# CONFIG_SENSORS_TMP401 is not set -# CONFIG_SENSORS_TMP421 is not set -# CONFIG_SENSORS_TMP464 is not set -# CONFIG_SENSORS_TMP513 is not set -# CONFIG_SENSORS_TPS23861 is not set -# CONFIG_SENSORS_TPS40422 is not set -# CONFIG_SENSORS_TPS53679 is not set -# CONFIG_SENSORS_TPS546D24 is not set -# CONFIG_SENSORS_TSL2550 is not set -# CONFIG_SENSORS_TSL2563 is not set -# CONFIG_SENSORS_UCD9000 is not set -# CONFIG_SENSORS_UCD9200 is not set -# CONFIG_SENSORS_VEXPRESS is not set -# CONFIG_SENSORS_VIA686A is not set -# CONFIG_SENSORS_VIA_CPUTEMP is not set -# CONFIG_SENSORS_VT1211 is not set -# CONFIG_SENSORS_VT8231 is not set -# CONFIG_SENSORS_W83627EHF is not set -# CONFIG_SENSORS_W83627HF is not set -# CONFIG_SENSORS_W83773G is not set -# CONFIG_SENSORS_W83781D is not set -# CONFIG_SENSORS_W83791D is not set -# CONFIG_SENSORS_W83792D is not set -# CONFIG_SENSORS_W83793 is not set -# CONFIG_SENSORS_W83795 is not set -# CONFIG_SENSORS_W83L785TS is not set -# CONFIG_SENSORS_W83L786NG is not set -# CONFIG_SENSORS_XDPE122 is not set -# CONFIG_SENSORS_XDPE152 is not set -# CONFIG_SENSORS_XGENE is not set -# CONFIG_SENSORS_ZL6100 is not set -CONFIG_SERIAL_8250=y -CONFIG_SERIAL_8250_16550A_VARIANTS=y -# CONFIG_SERIAL_8250_ACCENT is not set -# CONFIG_SERIAL_8250_ASPEED_VUART is not set -# CONFIG_SERIAL_8250_BOCA is not set -CONFIG_SERIAL_8250_CONSOLE=y -# CONFIG_SERIAL_8250_CS is not set -# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set -# CONFIG_SERIAL_8250_DETECT_IRQ is not set -CONFIG_SERIAL_8250_DMA=y -# CONFIG_SERIAL_8250_DW is not set -# CONFIG_SERIAL_8250_EM is not set -# CONFIG_SERIAL_8250_EXAR is not set -# CONFIG_SERIAL_8250_EXAR_ST16C554 is not set -# CONFIG_SERIAL_8250_EXTENDED is not set -# CONFIG_SERIAL_8250_FINTEK is not set -# CONFIG_SERIAL_8250_FOURPORT is not set -# CONFIG_SERIAL_8250_HUB6 is not set -# CONFIG_SERIAL_8250_INGENIC is not set -# CONFIG_SERIAL_8250_LPSS is not set -# CONFIG_SERIAL_8250_MANY_PORTS is not set -# CONFIG_SERIAL_8250_MID is not set -# CONFIG_SERIAL_8250_MOXA is not set -CONFIG_SERIAL_8250_NR_UARTS=2 -# CONFIG_SERIAL_8250_PCI is not set -# CONFIG_SERIAL_8250_PERICOM is not set -# CONFIG_SERIAL_8250_RSA is not set -# CONFIG_SERIAL_8250_RT288X is not set -CONFIG_SERIAL_8250_RUNTIME_UARTS=2 -# CONFIG_SERIAL_ALTERA_JTAGUART is not set -# CONFIG_SERIAL_ALTERA_UART is not set -# CONFIG_SERIAL_AMBA_PL010 is not set -# CONFIG_SERIAL_AMBA_PL011 is not set -# CONFIG_SERIAL_ARC is not set -# CONFIG_SERIAL_BCM63XX is not set -# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set -CONFIG_SERIAL_CORE=y -CONFIG_SERIAL_CORE_CONSOLE=y -# CONFIG_SERIAL_DEV_BUS is not set -CONFIG_SERIAL_EARLYCON=y -# CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set -# CONFIG_SERIAL_FSL_LINFLEXUART is not set -# CONFIG_SERIAL_FSL_LPUART is not set -# CONFIG_SERIAL_GRLIB_GAISLER_APBUART is not set -# CONFIG_SERIAL_IFX6X60 is not set -# CONFIG_SERIAL_JSM is not set -# CONFIG_SERIAL_MAX3100 is not set -# CONFIG_SERIAL_MAX310X is not set -# CONFIG_SERIAL_MULTI_INSTANTIATE is not set -# CONFIG_SERIAL_NONSTANDARD is not set -# CONFIG_SERIAL_OF_PLATFORM is not set -# CONFIG_SERIAL_OF_PLATFORM_NWPSERIAL is not set -# CONFIG_SERIAL_PCH_UART is not set -# CONFIG_SERIAL_RP2 is not set -# CONFIG_SERIAL_SC16IS7XX is not set -# CONFIG_SERIAL_SCCNXP is not set -# CONFIG_SERIAL_SH_SCI is not set -# CONFIG_SERIAL_SIFIVE is not set -# CONFIG_SERIAL_SPRD is not set -# CONFIG_SERIAL_STM32 is not set -# CONFIG_SERIAL_ST_ASC is not set -# CONFIG_SERIAL_TIMBERDALE is not set -# CONFIG_SERIAL_UARTLITE is not set -# CONFIG_SERIAL_XILINX_PS_UART is not set -# CONFIG_SERIO is not set -# CONFIG_SERIO_ALTERA_PS2 is not set -# CONFIG_SERIO_AMBAKMI is not set -# CONFIG_SERIO_APBPS2 is not set -# CONFIG_SERIO_ARC_PS2 is not set -# CONFIG_SERIO_CT82C710 is not set -# CONFIG_SERIO_GPIO_PS2 is not set -# CONFIG_SERIO_I8042 is not set -# CONFIG_SERIO_LIBPS2 is not set -# CONFIG_SERIO_PARKBD is not set -# CONFIG_SERIO_PCIPS2 is not set -# CONFIG_SERIO_PS2MULT is not set -# CONFIG_SERIO_RAW is not set -# CONFIG_SERIO_SERPORT is not set -# CONFIG_SERIO_SUN4I_PS2 is not set -# CONFIG_SFC is not set -# CONFIG_SFC_FALCON is not set -# CONFIG_SFC_SIENA is not set -# CONFIG_SFI is not set -# CONFIG_SFP is not set -# CONFIG_SF_PDMA is not set -# CONFIG_SGETMASK_SYSCALL is not set -# CONFIG_SGI_IOC4 is not set -# CONFIG_SGI_IP22 is not set -# CONFIG_SGI_IP27 is not set -# CONFIG_SGI_IP28 is not set -# CONFIG_SGI_IP30 is not set -# CONFIG_SGI_IP32 is not set -# CONFIG_SGI_MFD_IOC3 is not set -# CONFIG_SGI_PARTITION is not set -# CONFIG_SG_POOL is not set -# CONFIG_SG_SPLIT is not set -# CONFIG_SHADOW_CALL_STACK is not set -CONFIG_SHMEM=y -# CONFIG_SHRINKER_DEBUG is not set -# CONFIG_SHUFFLE_PAGE_ALLOCATOR is not set -# CONFIG_SH_ETH is not set -# CONFIG_SH_TIMER_CMT is not set -# CONFIG_SH_TIMER_MTU2 is not set -# CONFIG_SH_TIMER_TMU is not set -# CONFIG_SI1133 is not set -# CONFIG_SI1145 is not set -# CONFIG_SI7005 is not set -# CONFIG_SI7020 is not set -# CONFIG_SIBYTE_BIGSUR is not set -# CONFIG_SIBYTE_CARMEL is not set -# CONFIG_SIBYTE_CRHINE is not set -# CONFIG_SIBYTE_CRHONE is not set -# CONFIG_SIBYTE_LITTLESUR is not set -# CONFIG_SIBYTE_RHONE is not set -# CONFIG_SIBYTE_SENTOSA is not set -# CONFIG_SIBYTE_SWARM is not set -CONFIG_SIGNALFD=y -# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set -# CONFIG_SIMPLE_GPIO is not set -# CONFIG_SIMPLE_PM_BUS is not set -# CONFIG_SIOX is not set -# CONFIG_SIS190 is not set -# CONFIG_SIS900 is not set -# CONFIG_SKGE is not set -# CONFIG_SKY2 is not set -# CONFIG_SKY2_DEBUG is not set -# CONFIG_SLAB is not set -# CONFIG_SLAB_DEPRECATED is not set -CONFIG_SLABINFO=y -CONFIG_SLAB_FREELIST_HARDENED=y -CONFIG_SLAB_FREELIST_RANDOM=y -CONFIG_SLAB_MERGE_DEFAULT=y -# CONFIG_SLHC is not set -# CONFIG_SLICOSS is not set -# CONFIG_SLIMBUS is not set -# CONFIG_SLIP is not set -# CONFIG_SLOB is not set -# CONFIG_SLS is not set -CONFIG_SLUB=y -CONFIG_SLUB_CPU_PARTIAL=y -# CONFIG_SLUB_DEBUG is not set -# CONFIG_SLUB_DEBUG_ON is not set -# CONFIG_SLUB_MEMCG_SYSFS_ON is not set -# CONFIG_SLUB_STATS is not set -# CONFIG_SLUB_TINY is not set -# CONFIG_SMARTJOYPLUS_FF is not set -# CONFIG_SMB_SERVER is not set -# CONFIG_SMC911X is not set -# CONFIG_SMC9194 is not set -# CONFIG_SMC91X is not set -# CONFIG_SMP is not set -# CONFIG_SMSC911X is not set -# CONFIG_SMSC9420 is not set -# CONFIG_SMSC_PHY is not set -# CONFIG_SMS_SDIO_DRV is not set -# CONFIG_SMS_USB_DRV is not set -# CONFIG_SM_CAMCC_8250 is not set -# CONFIG_SM_FTL is not set -# CONFIG_SM_GCC_6115 is not set -# CONFIG_SM_GCC_6125 is not set -# CONFIG_SM_GCC_6350 is not set -# CONFIG_SM_GCC_6375 is not set -# CONFIG_SM_GCC_8350 is not set -# CONFIG_SND is not set -# CONFIG_SND_AC97_POWER_SAVE is not set -# CONFIG_SND_AD1816A is not set -# CONFIG_SND_AD1848 is not set -# CONFIG_SND_AD1889 is not set -# CONFIG_SND_ADLIB is not set -# CONFIG_SND_ALI5451 is not set -# CONFIG_SND_ALOOP is not set -# CONFIG_SND_ALS100 is not set -# CONFIG_SND_ALS300 is not set -# CONFIG_SND_ALS4000 is not set -# CONFIG_SND_AMD_ACP_CONFIG is not set -# CONFIG_SND_ARM is not set -# CONFIG_SND_ASIHPI is not set -# CONFIG_SND_ATIIXP is not set -# CONFIG_SND_ATIIXP_MODEM is not set -# CONFIG_SND_ATMEL_AC97C is not set -# CONFIG_SND_ATMEL_SOC is not set -# CONFIG_SND_AU8810 is not set -# CONFIG_SND_AU8820 is not set -# CONFIG_SND_AU8830 is not set -# CONFIG_SND_AUDIO_GRAPH_CARD is not set -# CONFIG_SND_AUDIO_GRAPH_CARD2 is not set -# CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set -# CONFIG_SND_AW2 is not set -# CONFIG_SND_AZT2320 is not set -# CONFIG_SND_AZT3328 is not set -# CONFIG_SND_BCD2000 is not set -# CONFIG_SND_BCM63XX_I2S_WHISTLER is not set -# CONFIG_SND_BT87X is not set -# CONFIG_SND_CA0106 is not set -# CONFIG_SND_CMI8330 is not set -# CONFIG_SND_CMIPCI is not set -# CONFIG_SND_CS4231 is not set -# CONFIG_SND_CS4236 is not set -# CONFIG_SND_CS4281 is not set -# CONFIG_SND_CS46XX is not set -# CONFIG_SND_CS5530 is not set -# CONFIG_SND_CS5535AUDIO is not set -# CONFIG_SND_CTL_FAST_LOOKUP is not set -# CONFIG_SND_CTL_INPUT_VALIDATION is not set -# CONFIG_SND_CTXFI is not set -# CONFIG_SND_DARLA20 is not set -# CONFIG_SND_DARLA24 is not set -# CONFIG_SND_DEBUG is not set -# CONFIG_SND_DESIGNWARE_I2S is not set -CONFIG_SND_DRIVERS=y -# CONFIG_SND_DUMMY is not set -# CONFIG_SND_DYNAMIC_MINORS is not set -# CONFIG_SND_ECHO3G is not set -# CONFIG_SND_EDMA_SOC is not set -# CONFIG_SND_EMU10K1 is not set -# CONFIG_SND_EMU10K1X is not set -# CONFIG_SND_EMU10K1_SEQ is not set -# CONFIG_SND_ENS1370 is not set -# CONFIG_SND_ENS1371 is not set -# CONFIG_SND_ES1688 is not set -# CONFIG_SND_ES18XX is not set -# CONFIG_SND_ES1938 is not set -# CONFIG_SND_ES1968 is not set -# CONFIG_SND_FIREWIRE is not set -# CONFIG_SND_FM801 is not set -# CONFIG_SND_GINA20 is not set -# CONFIG_SND_GINA24 is not set -# CONFIG_SND_GUSCLASSIC is not set -# CONFIG_SND_GUSEXTREME is not set -# CONFIG_SND_GUSMAX is not set -# CONFIG_SND_HDA_CODEC_CS8409 is not set -# CONFIG_SND_HDA_INTEL is not set -# CONFIG_SND_HDA_INTEL_DETECT_DMIC is not set -# CONFIG_SND_HDA_INTEL_HDMI_SILENT_STREAM is not set -CONFIG_SND_HDA_POWER_SAVE_DEFAULT=0 -CONFIG_SND_HDA_PREALLOC_SIZE=64 -# CONFIG_SND_HDSP is not set -# CONFIG_SND_HDSPM is not set -# CONFIG_SND_HRTIMER is not set -# CONFIG_SND_HWDEP is not set -# CONFIG_SND_I2S_HI6210_I2S is not set -# CONFIG_SND_ICE1712 is not set -# CONFIG_SND_ICE1724 is not set -# CONFIG_SND_INDIGO is not set -# CONFIG_SND_INDIGODJ is not set -# CONFIG_SND_INDIGODJX is not set -# CONFIG_SND_INDIGOIO is not set -# CONFIG_SND_INDIGOIOX is not set -# CONFIG_SND_INTEL8X0 is not set -# CONFIG_SND_INTEL8X0M is not set -# CONFIG_SND_INTERWAVE is not set -# CONFIG_SND_INTERWAVE_STB is not set -# CONFIG_SND_ISA is not set -# CONFIG_SND_JZ4740_SOC_I2S is not set -# CONFIG_SND_KIRKWOOD_SOC is not set -# CONFIG_SND_KORG1212 is not set -# CONFIG_SND_LAYLA20 is not set -# CONFIG_SND_LAYLA24 is not set -# CONFIG_SND_LOLA is not set -# CONFIG_SND_LX6464ES is not set -# CONFIG_SND_MAESTRO3 is not set -CONFIG_SND_MAX_CARDS=16 -# CONFIG_SND_MIA is not set -# CONFIG_SND_MIPS is not set -# CONFIG_SND_MIRO is not set -# CONFIG_SND_MIXART is not set -# CONFIG_SND_MIXER_OSS is not set -# CONFIG_SND_MONA is not set -# CONFIG_SND_MPC52xx_SOC_EFIKA is not set -# CONFIG_SND_MPU401 is not set -# CONFIG_SND_MTPAV is not set -# CONFIG_SND_MTS64 is not set -# CONFIG_SND_MXS_SOC is not set -# CONFIG_SND_NM256 is not set -# CONFIG_SND_OPL3SA2 is not set -# CONFIG_SND_OPL3_LIB_SEQ is not set -# CONFIG_SND_OPL4_LIB_SEQ is not set -# CONFIG_SND_OPTI92X_AD1848 is not set -# CONFIG_SND_OPTI92X_CS4231 is not set -# CONFIG_SND_OPTI93X is not set -CONFIG_SND_OSSEMUL=y -# CONFIG_SND_OXYGEN is not set -CONFIG_SND_PCI=y -# CONFIG_SND_PCM is not set -# CONFIG_SND_PCMCIA is not set -# CONFIG_SND_PCM_OSS is not set -CONFIG_SND_PCM_OSS_PLUGINS=y -# CONFIG_SND_PCM_TIMER is not set -# CONFIG_SND_PCM_XRUN_DEBUG is not set -# CONFIG_SND_PCXHR is not set -# CONFIG_SND_PDAUDIOCF is not set -# CONFIG_SND_PORTMAN2X4 is not set -# CONFIG_SND_POWERPC_SOC is not set -# CONFIG_SND_PPC is not set -CONFIG_SND_PROC_FS=y -# CONFIG_SND_RAWMIDI is not set -# CONFIG_SND_RAWMIDI_SEQ is not set -# CONFIG_SND_RIPTIDE is not set -# CONFIG_SND_RME32 is not set -# CONFIG_SND_RME96 is not set -# CONFIG_SND_RME9652 is not set -# CONFIG_SND_RTCTIMER is not set -# CONFIG_SND_SB16 is not set -# CONFIG_SND_SB8 is not set -# CONFIG_SND_SBAWE is not set -# CONFIG_SND_SBAWE_SEQ is not set -# CONFIG_SND_SE6X is not set -# CONFIG_SND_SEQUENCER is not set -# CONFIG_SND_SERIAL_GENERIC is not set -# CONFIG_SND_SERIAL_U16550 is not set -# CONFIG_SND_SIMPLE_CARD is not set -# CONFIG_SND_SIMPLE_SCU_CARD is not set -# CONFIG_SND_SIS7019 is not set -# CONFIG_SND_SOC is not set -# CONFIG_SND_SOC_AC97_CODEC is not set -# CONFIG_SND_SOC_AD193X_I2C is not set -# CONFIG_SND_SOC_AD193X_SPI is not set -# CONFIG_SND_SOC_ADAU1372_I2C is not set -# CONFIG_SND_SOC_ADAU1372_SPI is not set -# CONFIG_SND_SOC_ADAU1701 is not set -# CONFIG_SND_SOC_ADAU1761_I2C is not set -# CONFIG_SND_SOC_ADAU1761_SPI is not set -# CONFIG_SND_SOC_ADAU7002 is not set -# CONFIG_SND_SOC_ADAU7118_HW is not set -# CONFIG_SND_SOC_ADAU7118_I2C is not set -# CONFIG_SND_SOC_ADI is not set -# CONFIG_SND_SOC_AK4104 is not set -# CONFIG_SND_SOC_AK4118 is not set -# CONFIG_SND_SOC_AK4375 is not set -# CONFIG_SND_SOC_AK4458 is not set -# CONFIG_SND_SOC_AK4554 is not set -# CONFIG_SND_SOC_AK4613 is not set -# CONFIG_SND_SOC_AK4642 is not set -# CONFIG_SND_SOC_AK5386 is not set -# CONFIG_SND_SOC_AK5558 is not set -# CONFIG_SND_SOC_ALC5623 is not set -# CONFIG_SND_SOC_AMD_ACP is not set -# CONFIG_SND_SOC_AMD_ACP3x is not set -# CONFIG_SND_SOC_AMD_ACP5x is not set -# CONFIG_SND_SOC_AMD_RENOIR is not set -# CONFIG_SND_SOC_AU1XAUDIO is not set -# CONFIG_SND_SOC_AU1XPSC is not set -# CONFIG_SND_SOC_AW8738 is not set -# CONFIG_SND_SOC_BD28623 is not set -# CONFIG_SND_SOC_BT_SCO is not set -# CONFIG_SND_SOC_CS35L32 is not set -# CONFIG_SND_SOC_CS35L33 is not set -# CONFIG_SND_SOC_CS35L34 is not set -# CONFIG_SND_SOC_CS35L35 is not set -# CONFIG_SND_SOC_CS35L36 is not set -# CONFIG_SND_SOC_CS35L41_I2C is not set -# CONFIG_SND_SOC_CS35L41_SPI is not set -# CONFIG_SND_SOC_CS35L45_I2C is not set -# CONFIG_SND_SOC_CS35L45_SPI is not set -# CONFIG_SND_SOC_CS4234 is not set -# CONFIG_SND_SOC_CS4265 is not set -# CONFIG_SND_SOC_CS4270 is not set -# CONFIG_SND_SOC_CS4271 is not set -# CONFIG_SND_SOC_CS4271_I2C is not set -# CONFIG_SND_SOC_CS4271_SPI is not set -# CONFIG_SND_SOC_CS42L42 is not set -# CONFIG_SND_SOC_CS42L51_I2C is not set -# CONFIG_SND_SOC_CS42L52 is not set -# CONFIG_SND_SOC_CS42L56 is not set -# CONFIG_SND_SOC_CS42L73 is not set -# CONFIG_SND_SOC_CS42L83 is not set -# CONFIG_SND_SOC_CS42XX8_I2C is not set -# CONFIG_SND_SOC_CS43130 is not set -# CONFIG_SND_SOC_CS4341 is not set -# CONFIG_SND_SOC_CS4349 is not set -# CONFIG_SND_SOC_CS53L30 is not set -# CONFIG_SND_SOC_CX2072X is not set -# CONFIG_SND_SOC_DA7213 is not set -# CONFIG_SND_SOC_DIO2125 is not set -# CONFIG_SND_SOC_DMIC is not set -# CONFIG_SND_SOC_ES7134 is not set -# CONFIG_SND_SOC_ES7241 is not set -# CONFIG_SND_SOC_ES8316 is not set -# CONFIG_SND_SOC_ES8326 is not set -# CONFIG_SND_SOC_ES8328 is not set -# CONFIG_SND_SOC_ES8328_I2C is not set -# CONFIG_SND_SOC_ES8328_SPI is not set -# CONFIG_SND_SOC_EUKREA_TLV320 is not set -# CONFIG_SND_SOC_FSL_ASOC_CARD is not set -# CONFIG_SND_SOC_FSL_ASRC is not set -# CONFIG_SND_SOC_FSL_AUD2HTX is not set -# CONFIG_SND_SOC_FSL_AUDMIX is not set -# CONFIG_SND_SOC_FSL_ESAI is not set -# CONFIG_SND_SOC_FSL_MICFIL is not set -# CONFIG_SND_SOC_FSL_RPMSG is not set -# CONFIG_SND_SOC_FSL_SAI is not set -# CONFIG_SND_SOC_FSL_SPDIF is not set -# CONFIG_SND_SOC_FSL_SSI is not set -# CONFIG_SND_SOC_FSL_XCVR is not set -# CONFIG_SND_SOC_GTM601 is not set -# CONFIG_SND_SOC_HDA is not set -# CONFIG_SND_SOC_ICS43432 is not set -# CONFIG_SND_SOC_IMG is not set -# CONFIG_SND_SOC_IMX_AUDMIX is not set -# CONFIG_SND_SOC_IMX_AUDMUX is not set -# CONFIG_SND_SOC_IMX_CARD is not set -# CONFIG_SND_SOC_IMX_ES8328 is not set -# CONFIG_SND_SOC_IMX_HDMI is not set -# CONFIG_SND_SOC_IMX_RPMSG is not set -# CONFIG_SND_SOC_IMX_SPDIF is not set -# CONFIG_SND_SOC_IMX_WM8962 is not set -# CONFIG_SND_SOC_INNO_RK3036 is not set -# CONFIG_SND_SOC_INTEL_APL is not set -# CONFIG_SND_SOC_INTEL_BAYTRAIL is not set -# CONFIG_SND_SOC_INTEL_BDW_RT5677_MACH is not set -# CONFIG_SND_SOC_INTEL_BXT_DA7219_MAX98357A_MACH is not set -# CONFIG_SND_SOC_INTEL_BXT_RT298_MACH is not set -# CONFIG_SND_SOC_INTEL_BYTCR_RT5640_MACH is not set -# CONFIG_SND_SOC_INTEL_BYTCR_RT5651_MACH is not set -# CONFIG_SND_SOC_INTEL_BYT_CHT_DA7213_MACH is not set -# CONFIG_SND_SOC_INTEL_BYT_CHT_ES8316_MACH is not set -# CONFIG_SND_SOC_INTEL_BYT_CHT_NOCODEC_MACH is not set -# CONFIG_SND_SOC_INTEL_BYT_MAX98090_MACH is not set -# CONFIG_SND_SOC_INTEL_BYT_RT5640_MACH is not set -# CONFIG_SND_SOC_INTEL_CATPT is not set -# CONFIG_SND_SOC_INTEL_CFL is not set -# CONFIG_SND_SOC_INTEL_CHT_BSW_MAX98090_TI_MACH is not set -# CONFIG_SND_SOC_INTEL_CHT_BSW_NAU8824_MACH is not set -# CONFIG_SND_SOC_INTEL_CHT_BSW_RT5645_MACH is not set -# CONFIG_SND_SOC_INTEL_CHT_BSW_RT5672_MACH is not set -# CONFIG_SND_SOC_INTEL_CML_H is not set -# CONFIG_SND_SOC_INTEL_CML_LP is not set -# CONFIG_SND_SOC_INTEL_CNL is not set -# CONFIG_SND_SOC_INTEL_GLK is not set -# CONFIG_SND_SOC_INTEL_HASWELL is not set -# CONFIG_SND_SOC_INTEL_KBL is not set -# CONFIG_SND_SOC_INTEL_KBL_RT5663_MAX98927_MACH is not set -# CONFIG_SND_SOC_INTEL_KBL_RT5663_RT5514_MAX98927_MACH is not set -# CONFIG_SND_SOC_INTEL_KEEMBAY is not set -# CONFIG_SND_SOC_INTEL_SKL is not set -# CONFIG_SND_SOC_INTEL_SKL_NAU88L25_MAX98357A_MACH is not set -# CONFIG_SND_SOC_INTEL_SKL_NAU88L25_SSM4567_MACH is not set -# CONFIG_SND_SOC_INTEL_SKL_RT286_MACH is not set -# CONFIG_SND_SOC_INTEL_SKYLAKE is not set -# CONFIG_SND_SOC_INTEL_SST is not set -CONFIG_SND_SOC_INTEL_SST_TOPLEVEL=y -# CONFIG_SND_SOC_INTEL_USER_FRIENDLY_LONG_NAMES is not set -# CONFIG_SND_SOC_JZ4725B_CODEC is not set -# CONFIG_SND_SOC_JZ4740_CODEC is not set -# CONFIG_SND_SOC_JZ4770_CODEC is not set -# CONFIG_SND_SOC_LPASS_RX_MACRO is not set -# CONFIG_SND_SOC_LPASS_TX_MACRO is not set -# CONFIG_SND_SOC_LPASS_VA_MACRO is not set -# CONFIG_SND_SOC_LPASS_WSA_MACRO is not set -# CONFIG_SND_SOC_MA120X0P is not set -# CONFIG_SND_SOC_MAX9759 is not set -# CONFIG_SND_SOC_MAX98088 is not set -# CONFIG_SND_SOC_MAX98357A is not set -# CONFIG_SND_SOC_MAX98373 is not set -# CONFIG_SND_SOC_MAX98373_I2C is not set -# CONFIG_SND_SOC_MAX98390 is not set -# CONFIG_SND_SOC_MAX98396 is not set -# CONFIG_SND_SOC_MAX98504 is not set -# CONFIG_SND_SOC_MAX98520 is not set -# CONFIG_SND_SOC_MAX9860 is not set -# CONFIG_SND_SOC_MAX9867 is not set -# CONFIG_SND_SOC_MAX98927 is not set -# CONFIG_SND_SOC_MEDIATEK is not set -# CONFIG_SND_SOC_MPC5200_AC97 is not set -# CONFIG_SND_SOC_MPC5200_I2S is not set -# CONFIG_SND_SOC_MSM8916_WCD_ANALOG is not set -# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set -# CONFIG_SND_SOC_MT2701 is not set -# CONFIG_SND_SOC_MT6351 is not set -# CONFIG_SND_SOC_MT6358 is not set -# CONFIG_SND_SOC_MT6359 is not set -# CONFIG_SND_SOC_MT6359_ACCDET is not set -# CONFIG_SND_SOC_MT6660 is not set -# CONFIG_SND_SOC_MT6797 is not set -# CONFIG_SND_SOC_MT8173 is not set -# CONFIG_SND_SOC_MT8183 is not set -# CONFIG_SND_SOC_MT8192 is not set -# CONFIG_SND_SOC_MT8195 is not set -# CONFIG_SND_SOC_MTK_BTCVSD is not set -# CONFIG_SND_SOC_NAU8315 is not set -# CONFIG_SND_SOC_NAU8540 is not set -# CONFIG_SND_SOC_NAU8810 is not set -# CONFIG_SND_SOC_NAU8821 is not set -# CONFIG_SND_SOC_NAU8822 is not set -# CONFIG_SND_SOC_NAU8824 is not set -# CONFIG_SND_SOC_PCM1681 is not set -# CONFIG_SND_SOC_PCM1789_I2C is not set -# CONFIG_SND_SOC_PCM1792A is not set -# CONFIG_SND_SOC_PCM179X_I2C is not set -# CONFIG_SND_SOC_PCM179X_SPI is not set -# CONFIG_SND_SOC_PCM186X_I2C is not set -# CONFIG_SND_SOC_PCM186X_SPI is not set -# CONFIG_SND_SOC_PCM3060_I2C is not set -# CONFIG_SND_SOC_PCM3060_SPI is not set -# CONFIG_SND_SOC_PCM3168A_I2C is not set -# CONFIG_SND_SOC_PCM3168A_SPI is not set -# CONFIG_SND_SOC_PCM5102A is not set -# CONFIG_SND_SOC_PCM512x_I2C is not set -# CONFIG_SND_SOC_PCM512x_SPI is not set -# CONFIG_SND_SOC_QCOM is not set -# CONFIG_SND_SOC_RK3328 is not set -# CONFIG_SND_SOC_RK817 is not set -# CONFIG_SND_SOC_ROCKCHIP is not set -# CONFIG_SND_SOC_RT5616 is not set -# CONFIG_SND_SOC_RT5631 is not set -# CONFIG_SND_SOC_RT5640 is not set -# CONFIG_SND_SOC_RT5659 is not set -# CONFIG_SND_SOC_RT5677_SPI is not set -# CONFIG_SND_SOC_RT9120 is not set -# CONFIG_SND_SOC_SGTL5000 is not set -# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set -# CONFIG_SND_SOC_SIMPLE_MUX is not set -# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set -# CONFIG_SND_SOC_SOF_TOPLEVEL is not set -# CONFIG_SND_SOC_SPDIF is not set -# CONFIG_SND_SOC_SRC4XXX_I2C is not set -# CONFIG_SND_SOC_SSM2305 is not set -# CONFIG_SND_SOC_SSM2518 is not set -# CONFIG_SND_SOC_SSM2602_I2C is not set -# CONFIG_SND_SOC_SSM2602_SPI is not set -# CONFIG_SND_SOC_SSM4567 is not set -# CONFIG_SND_SOC_STA32X is not set -# CONFIG_SND_SOC_STA350 is not set -# CONFIG_SND_SOC_STI_SAS is not set -# CONFIG_SND_SOC_TAS2552 is not set -# CONFIG_SND_SOC_TAS2562 is not set -# CONFIG_SND_SOC_TAS2764 is not set -# CONFIG_SND_SOC_TAS2770 is not set -# CONFIG_SND_SOC_TAS2780 is not set -# CONFIG_SND_SOC_TAS5086 is not set -# CONFIG_SND_SOC_TAS571X is not set -# CONFIG_SND_SOC_TAS5720 is not set -# CONFIG_SND_SOC_TAS5805M is not set -# CONFIG_SND_SOC_TAS6424 is not set -# CONFIG_SND_SOC_TDA7419 is not set -# CONFIG_SND_SOC_TFA9879 is not set -# CONFIG_SND_SOC_TFA989X is not set -# CONFIG_SND_SOC_TLV320ADC3XXX is not set -# CONFIG_SND_SOC_TLV320ADCX140 is not set -# CONFIG_SND_SOC_TLV320AIC23_I2C is not set -# CONFIG_SND_SOC_TLV320AIC23_SPI is not set -# CONFIG_SND_SOC_TLV320AIC31XX is not set -# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set -# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set -# CONFIG_SND_SOC_TLV320AIC3X is not set -# CONFIG_SND_SOC_TLV320AIC3X_I2C is not set -# CONFIG_SND_SOC_TLV320AIC3X_SPI is not set -# CONFIG_SND_SOC_TPA6130A2 is not set -# CONFIG_SND_SOC_TS3A227E is not set -# CONFIG_SND_SOC_TSCS42XX is not set -# CONFIG_SND_SOC_TSCS454 is not set -# CONFIG_SND_SOC_UDA1334 is not set -# CONFIG_SND_SOC_WM8510 is not set -# CONFIG_SND_SOC_WM8523 is not set -# CONFIG_SND_SOC_WM8524 is not set -# CONFIG_SND_SOC_WM8580 is not set -# CONFIG_SND_SOC_WM8711 is not set -# CONFIG_SND_SOC_WM8728 is not set -# CONFIG_SND_SOC_WM8731 is not set -# CONFIG_SND_SOC_WM8731_I2C is not set -# CONFIG_SND_SOC_WM8731_SPI is not set -# CONFIG_SND_SOC_WM8737 is not set -# CONFIG_SND_SOC_WM8741 is not set -# CONFIG_SND_SOC_WM8750 is not set -# CONFIG_SND_SOC_WM8753 is not set -# CONFIG_SND_SOC_WM8770 is not set -# CONFIG_SND_SOC_WM8776 is not set -# CONFIG_SND_SOC_WM8782 is not set -# CONFIG_SND_SOC_WM8804_I2C is not set -# CONFIG_SND_SOC_WM8804_SPI is not set -# CONFIG_SND_SOC_WM8903 is not set -# CONFIG_SND_SOC_WM8904 is not set -# CONFIG_SND_SOC_WM8940 is not set -# CONFIG_SND_SOC_WM8960 is not set -# CONFIG_SND_SOC_WM8962 is not set -# CONFIG_SND_SOC_WM8974 is not set -# CONFIG_SND_SOC_WM8978 is not set -# CONFIG_SND_SOC_WM8985 is not set -# CONFIG_SND_SOC_XILINX_AUDIO_FORMATTER is not set -# CONFIG_SND_SOC_XILINX_I2S is not set -# CONFIG_SND_SOC_XILINX_SPDIF is not set -# CONFIG_SND_SOC_XTFPGA_I2S is not set -# CONFIG_SND_SOC_ZL38060 is not set -# CONFIG_SND_SOC_ZX_AUD96P22 is not set -# CONFIG_SND_SONICVIBES is not set -# CONFIG_SND_SPI is not set -# CONFIG_SND_SSCAPE is not set -# CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_ACPI is not set -# CONFIG_SND_SST_ATOM_HIFI2_PLATFORM_PCI is not set -# CONFIG_SND_SUN4I_CODEC is not set -# CONFIG_SND_SUPPORT_OLD_API is not set -# CONFIG_SND_TEST_COMPONENT is not set -# CONFIG_SND_TIMER is not set -# CONFIG_SND_TRIDENT is not set -CONFIG_SND_USB=y -# CONFIG_SND_USB_6FIRE is not set -# CONFIG_SND_USB_AUDIO is not set -# CONFIG_SND_USB_CAIAQ is not set -# CONFIG_SND_USB_HIFACE is not set -# CONFIG_SND_USB_POD is not set -# CONFIG_SND_USB_PODHD is not set -# CONFIG_SND_USB_TONEPORT is not set -# CONFIG_SND_USB_UA101 is not set -# CONFIG_SND_USB_US122L is not set -# CONFIG_SND_USB_USX2Y is not set -# CONFIG_SND_USB_VARIAX is not set -# CONFIG_SND_VERBOSE_PRINTK is not set -CONFIG_SND_VERBOSE_PROCFS=y -# CONFIG_SND_VIA82XX is not set -# CONFIG_SND_VIA82XX_MODEM is not set -# CONFIG_SND_VIRTIO is not set -# CONFIG_SND_VIRTUOSO is not set -# CONFIG_SND_VX222 is not set -# CONFIG_SND_VXPOCKET is not set -# CONFIG_SND_WAVEFRONT is not set -CONFIG_SND_X86=y -# CONFIG_SND_XEN_FRONTEND is not set -# CONFIG_SND_YMFPCI is not set -# CONFIG_SNI_RM is not set -# CONFIG_SOCIONEXT_SYNQUACER_PREITS is not set -# CONFIG_SOCK_CGROUP_DATA is not set -# CONFIG_SOC_AM33XX is not set -# CONFIG_SOC_AM43XX is not set -# CONFIG_SOC_BRCMSTB is not set -# CONFIG_SOC_CAMERA is not set -# CONFIG_SOC_DRA7XX is not set -# CONFIG_SOC_HAS_OMAP2_SDRC is not set -# CONFIG_SOC_OMAP5 is not set -# CONFIG_SOC_TI is not set -# CONFIG_SOFTLOCKUP_DETECTOR is not set -# CONFIG_SOFT_WATCHDOG is not set -# CONFIG_SOLARIS_X86_PARTITION is not set -# CONFIG_SONYPI is not set -# CONFIG_SONY_LAPTOP is not set -# CONFIG_SOUND is not set -# CONFIG_SOUNDWIRE is not set -# CONFIG_SOUND_OSS_CORE is not set -# CONFIG_SOUND_OSS_CORE_PRECLAIM is not set -# CONFIG_SOUND_PRIME is not set -# CONFIG_SP5100_TCO is not set -# CONFIG_SPARSEMEM_MANUAL is not set -# CONFIG_SPARSEMEM_STATIC is not set -# CONFIG_SPARSEMEM_VMEMMAP_ENABLE is not set -# CONFIG_SPARSE_IRQ is not set -# CONFIG_SPARSE_RCU_POINTER is not set -# CONFIG_SPEAKUP is not set -# CONFIG_SPI is not set -# CONFIG_SPINLOCK_TEST is not set -# CONFIG_SPI_ALTERA is not set -# CONFIG_SPI_AMD is not set -# CONFIG_SPI_AU1550 is not set -# CONFIG_SPI_AX88796C is not set -# CONFIG_SPI_AXI_SPI_ENGINE is not set -# CONFIG_SPI_BCM2835 is not set -# CONFIG_SPI_BCM_QSPI is not set -# CONFIG_SPI_BITBANG is not set -# CONFIG_SPI_BUTTERFLY is not set -# CONFIG_SPI_CADENCE is not set -# CONFIG_SPI_CADENCE_QUADSPI is not set -# CONFIG_SPI_CADENCE_XSPI is not set -# CONFIG_SPI_DEBUG is not set -# CONFIG_SPI_DESIGNWARE is not set -# CONFIG_SPI_FSL_DSPI is not set -# CONFIG_SPI_FSL_ESPI is not set -# CONFIG_SPI_FSL_SPI is not set -# CONFIG_SPI_GPIO is not set -# CONFIG_SPI_GPIO_OLD is not set -# CONFIG_SPI_IMG_SPFI is not set -# CONFIG_SPI_LANTIQ_SSC is not set -# CONFIG_SPI_LM70_LLP is not set -# CONFIG_SPI_LOOPBACK_TEST is not set -# CONFIG_SPI_MASTER is not set -# CONFIG_SPI_MEM is not set -# CONFIG_SPI_MICROCHIP_CORE is not set -# CONFIG_SPI_MICROCHIP_CORE_QSPI is not set -# CONFIG_SPI_MPC52xx is not set -# CONFIG_SPI_MPC52xx_PSC is not set -# CONFIG_SPI_MTK_QUADSPI is not set -# CONFIG_SPI_MUX is not set -# CONFIG_SPI_MXIC is not set -# CONFIG_SPI_NXP_FLEXSPI is not set -# CONFIG_SPI_OCTEON is not set -# CONFIG_SPI_OC_TINY is not set -# CONFIG_SPI_ORION is not set -# CONFIG_SPI_PL022 is not set -# CONFIG_SPI_PPC4xx is not set -# CONFIG_SPI_PXA2XX is not set -# CONFIG_SPI_PXA2XX_PCI is not set -# CONFIG_SPI_QCOM_QSPI is not set -# CONFIG_SPI_ROCKCHIP is not set -# CONFIG_SPI_ROCKCHIP_SFC is not set -# CONFIG_SPI_S3C64XX is not set -# CONFIG_SPI_SC18IS602 is not set -# CONFIG_SPI_SIFIVE is not set -# CONFIG_SPI_SLAVE is not set -# CONFIG_SPI_SPIDEV is not set -# CONFIG_SPI_THUNDERX is not set -# CONFIG_SPI_TI_QSPI is not set -# CONFIG_SPI_TLE62X0 is not set -# CONFIG_SPI_TOPCLIFF_PCH is not set -# CONFIG_SPI_XCOMM is not set -# CONFIG_SPI_XILINX is not set -# CONFIG_SPI_XWAY is not set -# CONFIG_SPI_ZYNQMP_GQSPI is not set -CONFIG_SPLIT_PTLOCK_CPUS=4 -# CONFIG_SPMI is not set -# CONFIG_SPS30 is not set -# CONFIG_SPS30_I2C is not set -# CONFIG_SPS30_SERIAL is not set -CONFIG_SQUASHFS=y -# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set -# CONFIG_SQUASHFS_DECOMP_MULTI is not set -CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y -# CONFIG_SQUASHFS_DECOMP_SINGLE is not set -CONFIG_SQUASHFS_EMBEDDED=y -# CONFIG_SQUASHFS_FILE_CACHE is not set -CONFIG_SQUASHFS_FILE_DIRECT=y -CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3 -# CONFIG_SQUASHFS_LZ4 is not set -# CONFIG_SQUASHFS_LZO is not set -# CONFIG_SQUASHFS_XATTR is not set -CONFIG_SQUASHFS_XZ=y -# CONFIG_SQUASHFS_ZLIB is not set -# CONFIG_SQUASHFS_ZSTD is not set -# CONFIG_SRAM is not set -# CONFIG_SRF04 is not set -# CONFIG_SRF08 is not set -# CONFIG_SSB is not set -# CONFIG_SSB_DEBUG is not set -# CONFIG_SSB_DRIVER_GPIO is not set -# CONFIG_SSB_HOST_SOC is not set -# CONFIG_SSB_PCMCIAHOST is not set -CONFIG_SSB_POSSIBLE=y -# CONFIG_SSB_SDIOHOST is not set -# CONFIG_SSB_SILENT is not set -# CONFIG_SSFDC is not set -# CONFIG_STACKPROTECTOR is not set -# CONFIG_STACKPROTECTOR_PER_TASK is not set -# CONFIG_STACKPROTECTOR_STRONG is not set -# CONFIG_STACKTRACE is not set -# CONFIG_STACKTRACE_BUILD_ID is not set -CONFIG_STACKTRACE_SUPPORT=y -CONFIG_STACK_HASH_ORDER=20 -# CONFIG_STACK_TRACER is not set -# CONFIG_STACK_VALIDATION is not set -CONFIG_STAGING=y -# CONFIG_STAGING_BOARD is not set -# CONFIG_STAGING_GASKET_FRAMEWORK is not set -# CONFIG_STAGING_MEDIA is not set -CONFIG_STANDALONE=y -# CONFIG_STATIC_KEYS_SELFTEST is not set -# CONFIG_STATIC_USERMODEHELPER is not set -CONFIG_STDBINUTILS=y -# CONFIG_STE10XP is not set -# CONFIG_STE_MODEM_RPROC is not set -# CONFIG_STK3310 is not set -# CONFIG_STK8312 is not set -# CONFIG_STK8BA50 is not set -# CONFIG_STM is not set -# CONFIG_STMMAC_ETH is not set -# CONFIG_STMMAC_PCI is not set -# CONFIG_STMMAC_PLATFORM is not set -# CONFIG_STMMAC_SELFTESTS is not set -# CONFIG_STM_DUMMY is not set -# CONFIG_STM_SOURCE_CONSOLE is not set -CONFIG_STP=y -# CONFIG_STREAM_PARSER is not set -# CONFIG_STRICT_DEVMEM is not set -CONFIG_STRICT_KERNEL_RWX=y -CONFIG_STRICT_MODULE_RWX=y -# CONFIG_STRING_SELFTEST is not set -CONFIG_STRIP_ASM_SYMS=y -# CONFIG_STX104 is not set -# CONFIG_ST_UVIS25 is not set -# CONFIG_SUN4I_GPADC is not set -# CONFIG_SUN50I_DE2_BUS is not set -# CONFIG_SUN50I_ERRATUM_UNKNOWN1 is not set -# CONFIG_SUNDANCE is not set -# CONFIG_SUNGEM is not set -# CONFIG_SUNRPC is not set -# CONFIG_SUNRPC_DEBUG is not set -CONFIG_SUNRPC_DISABLE_INSECURE_ENCTYPES=y -# CONFIG_SUNRPC_GSS is not set -# CONFIG_SUNXI_SRAM is not set -# CONFIG_SUN_PARTITION is not set -# CONFIG_SURFACE_3_BUTTON is not set -# CONFIG_SURFACE_PLATFORMS is not set -# CONFIG_SUSPEND is not set -# CONFIG_SUSPEND_SKIP_SYNC is not set -CONFIG_SWAP=y -# CONFIG_SWCONFIG is not set -# CONFIG_SWCONFIG_B53 is not set -# CONFIG_SWCONFIG_B53_MDIO_DRIVER is not set -# CONFIG_SWCONFIG_B53_MMAP_DRIVER is not set -# CONFIG_SWCONFIG_B53_SPI_DRIVER is not set -# CONFIG_SWCONFIG_B53_SRAB_DRIVER is not set -# CONFIG_SWCONFIG_LEDS is not set -# CONFIG_SW_SYNC is not set -# CONFIG_SX9310 is not set -# CONFIG_SX9324 is not set -# CONFIG_SX9360 is not set -# CONFIG_SX9500 is not set -# CONFIG_SXGBE_ETH is not set -CONFIG_SYMBOLIC_ERRNAME=y -# CONFIG_SYNCLINK_CS is not set -# CONFIG_SYNC_FILE is not set -# CONFIG_SYNOPSYS_DWC_ETH_QOS is not set -# CONFIG_SYNTH_EVENTS is not set -# CONFIG_SYNTH_EVENT_GEN_TEST is not set -CONFIG_SYN_COOKIES=y -# CONFIG_SYSCON_REBOOT_MODE is not set -CONFIG_SYSCTL=y -# CONFIG_SYSCTL_SYSCALL is not set -CONFIG_SYSFS=y -# CONFIG_SYSFS_DEPRECATED is not set -# CONFIG_SYSFS_DEPRECATED_V2 is not set -# CONFIG_SYSFS_SYSCALL is not set -# CONFIG_SYSTEMPORT is not set -# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set -# CONFIG_SYSTEM_DATA_VERIFICATION is not set -# CONFIG_SYSTEM_TRUSTED_KEYRING is not set -CONFIG_SYSTEM_TRUSTED_KEYS="" -# CONFIG_SYSV68_PARTITION is not set -CONFIG_SYSVIPC=y -CONFIG_SYSVIPC_SYSCTL=y -# CONFIG_SYSV_FS is not set -# CONFIG_SYS_HYPERVISOR is not set -# CONFIG_T5403 is not set -# CONFIG_TARGET_CORE is not set -# CONFIG_TASKSTATS is not set -# CONFIG_TASKS_RCU is not set -# CONFIG_TASK_XACCT is not set -# CONFIG_TC35815 is not set -# CONFIG_TCG_ATMEL is not set -# CONFIG_TCG_CRB is not set -# CONFIG_TCG_FTPM_TEE is not set -# CONFIG_TCG_INFINEON is not set -# CONFIG_TCG_NSC is not set -# CONFIG_TCG_ST33_I2C is not set -# CONFIG_TCG_TIS is not set -# CONFIG_TCG_TIS_I2C is not set -# CONFIG_TCG_TIS_I2C_ATMEL is not set -# CONFIG_TCG_TIS_I2C_CR50 is not set -# CONFIG_TCG_TIS_I2C_INFINEON is not set -# CONFIG_TCG_TIS_I2C_NUVOTON is not set -# CONFIG_TCG_TIS_SPI is not set -# CONFIG_TCG_TIS_ST33ZP24_I2C is not set -# CONFIG_TCG_TIS_ST33ZP24_SPI is not set -# CONFIG_TCG_TPM is not set -# CONFIG_TCG_VTPM_PROXY is not set -# CONFIG_TCG_XEN is not set -# CONFIG_TCIC is not set -CONFIG_TCP_CONG_ADVANCED=y -CONFIG_TCP_CONG_BBR=y -CONFIG_TCP_CONG_BBR1=y -CONFIG_TCP_CONG_BBR2=y -CONFIG_TCP_CONG_BIC=y -CONFIG_TCP_CONG_CDG=y -CONFIG_TCP_CONG_CUBIC=y -CONFIG_TCP_CONG_DCTCP=y -CONFIG_TCP_CONG_HSTCP=y -CONFIG_TCP_CONG_HTCP=y -CONFIG_TCP_CONG_HYBLA=y -CONFIG_TCP_CONG_ILLINOIS=y -CONFIG_TCP_CONG_LP=y -CONFIG_TCP_CONG_NV=y -CONFIG_TCP_CONG_SCALABLE=y -CONFIG_TCP_CONG_VEGAS=y -CONFIG_TCP_CONG_VENO=y -CONFIG_TCP_CONG_WESTWOOD=y -CONFIG_TCP_CONG_YEAH=y -# CONFIG_TCP_MD5SIG is not set -# CONFIG_TCS3414 is not set -# CONFIG_TCS3472 is not set -# CONFIG_TEE is not set -# CONFIG_TEGRA_AHB is not set -# CONFIG_TEGRA_HOST1X is not set -# CONFIG_TEHUTI is not set -# CONFIG_TERANETICS_PHY is not set -# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set -# CONFIG_TEST_BITFIELD is not set -# CONFIG_TEST_BITMAP is not set -# CONFIG_TEST_BITOPS is not set -# CONFIG_TEST_BLACKHOLE_DEV is not set -# CONFIG_TEST_BPF is not set -# CONFIG_TEST_CLOCKSOURCE_WATCHDOG is not set -# CONFIG_TEST_DEBUG_VIRTUAL is not set -# CONFIG_TEST_DIV64 is not set -# CONFIG_TEST_DYNAMIC_DEBUG is not set -# CONFIG_TEST_FIRMWARE is not set -# CONFIG_TEST_FREE_PAGES is not set -# CONFIG_TEST_HASH is not set -# CONFIG_TEST_HEXDUMP is not set -# CONFIG_TEST_IDA is not set -# CONFIG_TEST_KASAN_MODULE is not set -# CONFIG_TEST_KMOD is not set -# CONFIG_TEST_KSTRTOX is not set -# CONFIG_TEST_LIST_SORT is not set -# CONFIG_TEST_LKM is not set -# CONFIG_TEST_LOCKUP is not set -# CONFIG_TEST_MAPLE_TREE is not set -# CONFIG_TEST_MEMCAT_P is not set -# CONFIG_TEST_MEMINIT is not set -# CONFIG_TEST_MIN_HEAP is not set -# CONFIG_TEST_OVERFLOW is not set -# CONFIG_TEST_POWER is not set -# CONFIG_TEST_PRINTF is not set -# CONFIG_TEST_REF_TRACKER is not set -# CONFIG_TEST_RHASHTABLE is not set -# CONFIG_TEST_SCANF is not set -# CONFIG_TEST_SIPHASH is not set -# CONFIG_TEST_SORT is not set -# CONFIG_TEST_STACKINIT is not set -# CONFIG_TEST_STATIC_KEYS is not set -# CONFIG_TEST_STRING_HELPERS is not set -# CONFIG_TEST_STRSCPY is not set -# CONFIG_TEST_SYSCTL is not set -# CONFIG_TEST_UBSAN is not set -# CONFIG_TEST_UDELAY is not set -# CONFIG_TEST_USER_COPY is not set -# CONFIG_TEST_UUID is not set -# CONFIG_TEST_VMALLOC is not set -# CONFIG_TEST_XARRAY is not set -CONFIG_TEXTSEARCH=y -# CONFIG_TEXTSEARCH_BM is not set -# CONFIG_TEXTSEARCH_FSM is not set -# CONFIG_TEXTSEARCH_KMP is not set -# CONFIG_THERMAL is not set -# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set -# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set -# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set -# CONFIG_THERMAL_DEFAULT_GOV_BANG_BANG is not set -# CONFIG_THERMAL_EMULATION is not set -# CONFIG_THERMAL_GOV_BANG_BANG is not set -# CONFIG_THERMAL_GOV_FAIR_SHARE is not set -# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set -# CONFIG_THERMAL_GOV_USER_SPACE is not set -# CONFIG_THERMAL_HWMON is not set -# CONFIG_THERMAL_MMIO is not set -# CONFIG_THERMAL_NETLINK is not set -# CONFIG_THERMAL_STATISTICS is not set -# CONFIG_THERMAL_WRITABLE_TRIPS is not set -# CONFIG_THINKPAD_ACPI is not set -CONFIG_THIN_ARCHIVES=y -# CONFIG_THINKPAD_LMI is not set -# CONFIG_THRUSTMASTER_FF is not set -# CONFIG_THUMB2_KERNEL is not set -# CONFIG_THUNDERBOLT is not set -# CONFIG_THUNDER_NIC_BGX is not set -# CONFIG_THUNDER_NIC_PF is not set -# CONFIG_THUNDER_NIC_RGX is not set -# CONFIG_THUNDER_NIC_VF is not set -# CONFIG_TICK_CPU_ACCOUNTING is not set -CONFIG_TICK_ONESHOT=y -# CONFIG_TIFM_CORE is not set -# CONFIG_TIGON3 is not set -# CONFIG_TIMB_DMA is not set -CONFIG_TIMERFD=y -# CONFIG_TIMERLAT_TRACER is not set -# CONFIG_TIMER_STATS is not set -# CONFIG_TIME_NS is not set -# CONFIG_TINYDRM_HX8357D is not set -# CONFIG_TINYDRM_ILI9163 is not set -# CONFIG_TINYDRM_ILI9225 is not set -# CONFIG_TINYDRM_ILI9341 is not set -# CONFIG_TINYDRM_ILI9486 is not set -# CONFIG_TINYDRM_MI0283QT is not set -# CONFIG_TINYDRM_REPAPER is not set -# CONFIG_TINYDRM_ST7586 is not set -# CONFIG_TINYDRM_ST7735R is not set -CONFIG_TINY_RCU=y -# CONFIG_TIPC is not set -# CONFIG_TI_ADC081C is not set -# CONFIG_TI_ADC0832 is not set -# CONFIG_TI_ADC084S021 is not set -# CONFIG_TI_ADC108S102 is not set -# CONFIG_TI_ADC12138 is not set -# CONFIG_TI_ADC128S052 is not set -# CONFIG_TI_ADC161S626 is not set -# CONFIG_TI_ADS1015 is not set -# CONFIG_TI_ADS124S08 is not set -# CONFIG_TI_ADS131E08 is not set -# CONFIG_TI_ADS7950 is not set -# CONFIG_TI_ADS8344 is not set -# CONFIG_TI_ADS8688 is not set -# CONFIG_TI_AM335X_ADC is not set -# CONFIG_TI_CPSW is not set -# CONFIG_TI_CPSW_ALE is not set -# CONFIG_TI_CPSW_PHY_SEL is not set -# CONFIG_TI_CPTS is not set -# CONFIG_TI_DAC082S085 is not set -# CONFIG_TI_DAC5571 is not set -# CONFIG_TI_DAC7311 is not set -# CONFIG_TI_DAC7512 is not set -# CONFIG_TI_DAC7612 is not set -# CONFIG_TI_DAVINCI_CPDMA is not set -# CONFIG_TI_DAVINCI_MDIO is not set -# CONFIG_TI_ST is not set -# CONFIG_TI_SYSCON_RESET is not set -# CONFIG_TI_TLC4541 is not set -# CONFIG_TI_TSC2046 is not set -# CONFIG_TLAN is not set -# CONFIG_TLS is not set -# CONFIG_TLS_DEVICE is not set -# CONFIG_TLS_TOE is not set -# CONFIG_TMD_HERMES is not set -# CONFIG_TMP006 is not set -# CONFIG_TMP007 is not set -# CONFIG_TMP117 is not set -CONFIG_TMPFS=y -# CONFIG_TMPFS_INODE64 is not set -# CONFIG_TMPFS_POSIX_ACL is not set -CONFIG_TMPFS_XATTR=y -# CONFIG_TOPSTAR_LAPTOP is not set -# CONFIG_TORTURE_TEST is not set -# CONFIG_TOSHIBA_HAPS is not set -# CONFIG_TOSHIBA_WMI is not set -# CONFIG_TOUCHSCREEN_88PM860X is not set -# CONFIG_TOUCHSCREEN_AD7877 is not set -# CONFIG_TOUCHSCREEN_AD7879 is not set -# CONFIG_TOUCHSCREEN_AD7879_I2C is not set -# CONFIG_TOUCHSCREEN_AD7879_SPI is not set -# CONFIG_TOUCHSCREEN_ADC is not set -# CONFIG_TOUCHSCREEN_ADS7846 is not set -# CONFIG_TOUCHSCREEN_AR1021_I2C is not set -# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set -# CONFIG_TOUCHSCREEN_ATMEL_MXT_T37 is not set -# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set -# CONFIG_TOUCHSCREEN_BU21013 is not set -# CONFIG_TOUCHSCREEN_BU21029 is not set -# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set -# CONFIG_TOUCHSCREEN_CHIPONE_ICN8505 is not set -# CONFIG_TOUCHSCREEN_COLIBRI_VF50 is not set -# CONFIG_TOUCHSCREEN_CY8CTMA140 is not set -# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set -# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set -# CONFIG_TOUCHSCREEN_CYTTSP4_I2C is not set -# CONFIG_TOUCHSCREEN_CYTTSP4_SPI is not set -# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set -# CONFIG_TOUCHSCREEN_CYTTSP_I2C is not set -# CONFIG_TOUCHSCREEN_CYTTSP_SPI is not set -# CONFIG_TOUCHSCREEN_DA9034 is not set -# CONFIG_TOUCHSCREEN_DA9052 is not set -# CONFIG_TOUCHSCREEN_DYNAPRO is not set -# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set -# CONFIG_TOUCHSCREEN_EETI is not set -# CONFIG_TOUCHSCREEN_EGALAX is not set -# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set -# CONFIG_TOUCHSCREEN_EKTF2127 is not set -# CONFIG_TOUCHSCREEN_ELAN is not set -# CONFIG_TOUCHSCREEN_ELO is not set -# CONFIG_TOUCHSCREEN_EXC3000 is not set -# CONFIG_TOUCHSCREEN_FUJITSU is not set -# CONFIG_TOUCHSCREEN_GOODIX is not set -# CONFIG_TOUCHSCREEN_GUNZE is not set -# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set -# CONFIG_TOUCHSCREEN_HIDEEP is not set -# CONFIG_TOUCHSCREEN_HP600 is not set -# CONFIG_TOUCHSCREEN_HP7XX is not set -# CONFIG_TOUCHSCREEN_HTCPEN is not set -# CONFIG_TOUCHSCREEN_HYCON_HY46XX is not set -# CONFIG_TOUCHSCREEN_ILI210X is not set -# CONFIG_TOUCHSCREEN_ILITEK is not set -# CONFIG_TOUCHSCREEN_IMAGIS is not set -# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set -# CONFIG_TOUCHSCREEN_INEXIO is not set -# CONFIG_TOUCHSCREEN_IPAQ_MICRO is not set -# CONFIG_TOUCHSCREEN_IPROC is not set -# CONFIG_TOUCHSCREEN_IQS5XX is not set -# CONFIG_TOUCHSCREEN_LPC32XX is not set -# CONFIG_TOUCHSCREEN_MAX11801 is not set -# CONFIG_TOUCHSCREEN_MC13783 is not set -# CONFIG_TOUCHSCREEN_MCS5000 is not set -# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set -# CONFIG_TOUCHSCREEN_MIGOR is not set -# CONFIG_TOUCHSCREEN_MK712 is not set -# CONFIG_TOUCHSCREEN_MMS114 is not set -# CONFIG_TOUCHSCREEN_MSG2638 is not set -# CONFIG_TOUCHSCREEN_MTOUCH is not set -# CONFIG_TOUCHSCREEN_MX25 is not set -# CONFIG_TOUCHSCREEN_MXS_LRADC is not set -# CONFIG_TOUCHSCREEN_PCAP is not set -# CONFIG_TOUCHSCREEN_PENMOUNT is not set -# CONFIG_TOUCHSCREEN_PIXCIR is not set -# CONFIG_TOUCHSCREEN_PROPERTIES is not set -# CONFIG_TOUCHSCREEN_RASPBERRYPI_FW is not set -# CONFIG_TOUCHSCREEN_RM_TS is not set -# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set -# CONFIG_TOUCHSCREEN_RPI_FT5406 is not set -# CONFIG_TOUCHSCREEN_S3C2410 is not set -# CONFIG_TOUCHSCREEN_S6SY761 is not set -# CONFIG_TOUCHSCREEN_SILEAD is not set -# CONFIG_TOUCHSCREEN_SIS_I2C is not set -# CONFIG_TOUCHSCREEN_ST1232 is not set -# CONFIG_TOUCHSCREEN_STMFTS is not set -# CONFIG_TOUCHSCREEN_STMPE is not set -# CONFIG_TOUCHSCREEN_SUN4I is not set -# CONFIG_TOUCHSCREEN_SUR40 is not set -# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set -# CONFIG_TOUCHSCREEN_SX8654 is not set -# CONFIG_TOUCHSCREEN_TI_AM335X_TSC is not set -# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set -# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set -# CONFIG_TOUCHSCREEN_TOUCHWIN is not set -# CONFIG_TOUCHSCREEN_TPS6507X is not set -# CONFIG_TOUCHSCREEN_TS4800 is not set -# CONFIG_TOUCHSCREEN_TSC2004 is not set -# CONFIG_TOUCHSCREEN_TSC2005 is not set -# CONFIG_TOUCHSCREEN_TSC2007 is not set -# CONFIG_TOUCHSCREEN_TSC2007_IIO is not set -# CONFIG_TOUCHSCREEN_TSC200X_CORE is not set -# CONFIG_TOUCHSCREEN_TSC_SERIO is not set -# CONFIG_TOUCHSCREEN_UCB1400 is not set -# CONFIG_TOUCHSCREEN_USB_3M is not set -# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set -# CONFIG_TOUCHSCREEN_USB_DMC_TSC10 is not set -# CONFIG_TOUCHSCREEN_USB_E2I is not set -# CONFIG_TOUCHSCREEN_USB_EASYTOUCH is not set -# CONFIG_TOUCHSCREEN_USB_EGALAX is not set -# CONFIG_TOUCHSCREEN_USB_ELO is not set -# CONFIG_TOUCHSCREEN_USB_ETT_TC45USB is not set -# CONFIG_TOUCHSCREEN_USB_ETURBO is not set -# CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH is not set -# CONFIG_TOUCHSCREEN_USB_GOTOP is not set -# CONFIG_TOUCHSCREEN_USB_GUNZE is not set -# CONFIG_TOUCHSCREEN_USB_IDEALTEK is not set -# CONFIG_TOUCHSCREEN_USB_IRTOUCH is not set -# CONFIG_TOUCHSCREEN_USB_ITM is not set -# CONFIG_TOUCHSCREEN_USB_JASTEC is not set -# CONFIG_TOUCHSCREEN_USB_NEXIO is not set -# CONFIG_TOUCHSCREEN_USB_PANJIT is not set -# CONFIG_TOUCHSCREEN_USB_ZYTRONIC is not set -# CONFIG_TOUCHSCREEN_W90X900 is not set -# CONFIG_TOUCHSCREEN_WACOM_I2C is not set -# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set -# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set -# CONFIG_TOUCHSCREEN_WM831X is not set -# CONFIG_TOUCHSCREEN_WM9705 is not set -# CONFIG_TOUCHSCREEN_WM9712 is not set -# CONFIG_TOUCHSCREEN_WM9713 is not set -# CONFIG_TOUCHSCREEN_WM97XX is not set -# CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE is not set -# CONFIG_TOUCHSCREEN_WM97XX_ZYLONITE is not set -# CONFIG_TOUCHSCREEN_ZET6223 is not set -# CONFIG_TOUCHSCREEN_ZFORCE is not set -# CONFIG_TOUCHSCREEN_ZINITIX is not set -# CONFIG_TPL0102 is not set -# CONFIG_TPS6105X is not set -# CONFIG_TPS65010 is not set -# CONFIG_TPS6507X is not set -# CONFIG_TRACEPOINT_BENCHMARK is not set -# CONFIG_TRACER_SNAPSHOT is not set -# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set -# CONFIG_TRACE_BRANCH_PROFILING is not set -# CONFIG_TRACE_EVAL_MAP_FILE is not set -# CONFIG_TRACE_EVENT_INJECT is not set -CONFIG_TRACE_IRQFLAGS_SUPPORT=y -# CONFIG_TRACE_MMIO_ACCESS is not set -# CONFIG_TRACE_SINK is not set -# CONFIG_TRACING_EVENTS_GPIO is not set -CONFIG_TRACING_SUPPORT=y -CONFIG_TRAD_SIGNALS=y -# CONFIG_TRANSPARENT_HUGEPAGE is not set -# CONFIG_TREE_RCU is not set -# CONFIG_TREE_RCU_TRACE is not set -# CONFIG_TRIM_UNUSED_KSYMS is not set -# CONFIG_TRUSTED_FOUNDATIONS is not set -# CONFIG_TRUSTED_KEYS is not set -# CONFIG_TRUSTED_KEYS_TPM is not set -# CONFIG_TRUSTED_KEYS_TEE is not set -# CONFIG_TSL2583 is not set -# CONFIG_TSL2591 is not set -# CONFIG_TSL2772 is not set -# CONFIG_TSL2x7x is not set -# CONFIG_TSL4531 is not set -# CONFIG_TSNEP is not set -# CONFIG_TSYS01 is not set -# CONFIG_TSYS02D is not set -# CONFIG_TTPCI_EEPROM is not set -CONFIG_TTY=y -# CONFIG_TTY_PRINTK is not set -# CONFIG_TUN is not set -# CONFIG_TUN_VNET_CROSS_LE is not set -# CONFIG_TWL4030_CORE is not set -# CONFIG_TWL4030_MADC is not set -# CONFIG_TWL6030_GPADC is not set -# CONFIG_TWL6040_CORE is not set -# CONFIG_TXGBE is not set -# CONFIG_TYPEC is not set -# CONFIG_TYPEC_ANX7411 is not set -# CONFIG_TYPEC_DP_ALTMODE is not set -# CONFIG_TYPEC_MUX_FSA4480 is not set -# CONFIG_TYPEC_RT1719 is not set -# CONFIG_TYPEC_TCPM is not set -# CONFIG_TYPEC_UCSI is not set -# CONFIG_TYPEC_WUSB3801 is not set -# CONFIG_TYPHOON is not set -# CONFIG_UACCESS_WITH_MEMCPY is not set -# CONFIG_UBIFS_ATIME_SUPPORT is not set -# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set -# CONFIG_UBIFS_FS_AUTHENTICATION is not set -# CONFIG_UBIFS_FS_ENCRYPTION is not set -CONFIG_UBIFS_FS_LZO=y -# CONFIG_UBIFS_FS_SECURITY is not set -CONFIG_UBIFS_FS_XATTR=y -CONFIG_UBIFS_FS_ZLIB=y -CONFIG_UBIFS_FS_ZSTD=y -# CONFIG_UBSAN is not set -CONFIG_UBSAN_ALIGNMENT=y -CONFIG_UBSAN_BOOL=y -# CONFIG_UBSAN_DIV_ZERO is not set -CONFIG_UBSAN_ENUM=y -# CONFIG_UBSAN_MISC is not set -CONFIG_UBSAN_SHIFT=y -# CONFIG_UBSAN_UNREACHABLE is not set -# CONFIG_UCB1400_CORE is not set -# CONFIG_UCSI is not set -# CONFIG_UDF_FS is not set -# CONFIG_UDMABUF is not set -CONFIG_UEVENT_HELPER=y -CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug" -# CONFIG_UFS_FS is not set -# CONFIG_UHID is not set -CONFIG_UID16=y -# CONFIG_UIO is not set -# CONFIG_ULTRA is not set -# CONFIG_ULTRIX_PARTITION is not set -# CONFIG_UNICODE is not set -# CONFIG_UNISYSSPAR is not set -# CONFIG_UNISYS_VISORBUS is not set -CONFIG_UNIX=y -CONFIG_UNIX98_PTYS=y -# CONFIG_UNIXWARE_DISKLABEL is not set -# CONFIG_UNIX_DIAG is not set -CONFIG_UNIX_SCM=y -# CONFIG_UNUSED_BOARD_FILES is not set -# CONFIG_UNUSED_SYMBOLS is not set -# CONFIG_UNWINDER_FRAME_POINTER is not set -# CONFIG_UPROBES is not set -# CONFIG_UPROBE_EVENTS is not set -# CONFIG_US5182D is not set -# CONFIG_USB is not set -# CONFIG_USB4 is not set -# CONFIG_USBIP_CORE is not set -CONFIG_USBIP_VHCI_HC_PORTS=8 -CONFIG_USBIP_VHCI_NR_HCS=1 -# CONFIG_USBIP_VUDC is not set -# CONFIG_USBPCWATCHDOG is not set -# CONFIG_USB_ACM is not set -# CONFIG_USB_ADUTUX is not set -# CONFIG_USB_AIRSPY is not set -CONFIG_USB_ALI_M5632=y -# CONFIG_USB_AMD5536UDC is not set -CONFIG_USB_AN2720=y -# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set -# CONFIG_USB_APPLEDISPLAY is not set -CONFIG_USB_ARCH_HAS_HCD=y -CONFIG_USB_ARMLINUX=y -# CONFIG_USB_ATM is not set -# CONFIG_USB_AUDIO is not set -CONFIG_USB_AUTOSUSPEND_DELAY=2 -# CONFIG_USB_BDC_UDC is not set -CONFIG_USB_BELKIN=y -# CONFIG_USB_C67X00_HCD is not set -# CONFIG_USB_CATC is not set -# CONFIG_USB_CDC_COMPOSITE is not set -# CONFIG_USB_CDNS3 is not set -# CONFIG_USB_CDNS_SUPPORT is not set -# CONFIG_USB_CHAOSKEY is not set -# CONFIG_USB_CHIPIDEA is not set -# CONFIG_USB_CHIPIDEA_GENERIC is not set -# CONFIG_USB_CHIPIDEA_IMX is not set -# CONFIG_USB_CHIPIDEA_MSM is not set -# CONFIG_USB_CHIPIDEA_PCI is not set -# CONFIG_USB_CHIPIDEA_TEGRA is not set -# CONFIG_USB_CONFIGFS is not set -# CONFIG_USB_CONN_GPIO is not set -# CONFIG_USB_CXACRU is not set -# CONFIG_USB_CYPRESS_CY7C63 is not set -# CONFIG_USB_CYTHERM is not set -CONFIG_USB_DEFAULT_PERSIST=y -# CONFIG_USB_DSBR is not set -# CONFIG_USB_DUMMY_HCD is not set -# CONFIG_USB_DWC2 is not set -# CONFIG_USB_DWC2_DEBUG is not set -# CONFIG_USB_DWC2_DUAL_ROLE is not set -# CONFIG_USB_DWC2_HOST is not set -# CONFIG_USB_DWC2_PERIPHERAL is not set -# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set -# CONFIG_USB_DWC3 is not set -# CONFIG_USB_DWC3_EXYNOS is not set -# CONFIG_USB_DWC3_HAPS is not set -# CONFIG_USB_DWC3_KEYSTONE is not set -# CONFIG_USB_DWC3_OF_SIMPLE is not set -# CONFIG_USB_DWC3_PCI is not set -# CONFIG_USB_DWC3_QCOM is not set -# CONFIG_USB_DWC3_ULPI is not set -# CONFIG_USB_DYNAMIC_MINORS is not set -# CONFIG_USB_EG20T is not set -# CONFIG_USB_EHCI_ATH79 is not set -# CONFIG_USB_EHCI_FSL is not set -# CONFIG_USB_EHCI_HCD is not set -# CONFIG_USB_EHCI_HCD_AT91 is not set -# CONFIG_USB_EHCI_HCD_OMAP is not set -# CONFIG_USB_EHCI_HCD_PPC_OF is not set -# CONFIG_USB_EHCI_MSM is not set -# CONFIG_USB_EHCI_MV is not set -CONFIG_USB_EHCI_ROOT_HUB_TT=y -CONFIG_USB_EHCI_TT_NEWSCHED=y -# CONFIG_USB_EHSET_TEST_FIXTURE is not set -# CONFIG_USB_EMI26 is not set -# CONFIG_USB_EMI62 is not set -# CONFIG_USB_EPSON2888 is not set -# CONFIG_USB_ETH is not set -# CONFIG_USB_EZUSB_FX2 is not set -# CONFIG_USB_FEW_INIT_RETRIES is not set -# CONFIG_USB_FOTG210_HCD is not set -# CONFIG_USB_FOTG210_UDC is not set -# CONFIG_USB_FSL_USB2 is not set -# CONFIG_USB_FTDI_ELAN is not set -# CONFIG_USB_FUNCTIONFS is not set -# CONFIG_USB_FUSB300 is not set -# CONFIG_USB_GADGET is not set -# CONFIG_USB_GADGETFS is not set -# CONFIG_USB_GADGET_DEBUG is not set -# CONFIG_USB_GADGET_DEBUG_FILES is not set -# CONFIG_USB_GADGET_DEBUG_FS is not set -CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 -CONFIG_USB_GADGET_VBUS_DRAW=2 -# CONFIG_USB_GADGET_XILINX is not set -# CONFIG_USB_GL860 is not set -# CONFIG_USB_GOKU is not set -# CONFIG_USB_GPIO_VBUS is not set -# CONFIG_USB_GR_UDC is not set -# CONFIG_USB_GSPCA is not set -# CONFIG_USB_GSPCA_BENQ is not set -# CONFIG_USB_GSPCA_CONEX is not set -# CONFIG_USB_GSPCA_CPIA1 is not set -# CONFIG_USB_GSPCA_DTCS033 is not set -# CONFIG_USB_GSPCA_ETOMS is not set -# CONFIG_USB_GSPCA_FINEPIX is not set -# CONFIG_USB_GSPCA_JEILINJ is not set -# CONFIG_USB_GSPCA_JL2005BCD is not set -# CONFIG_USB_GSPCA_KINECT is not set -# CONFIG_USB_GSPCA_KONICA is not set -# CONFIG_USB_GSPCA_MARS is not set -# CONFIG_USB_GSPCA_MR97310A is not set -# CONFIG_USB_GSPCA_NW80X is not set -# CONFIG_USB_GSPCA_OV519 is not set -# CONFIG_USB_GSPCA_OV534 is not set -# CONFIG_USB_GSPCA_OV534_9 is not set -# CONFIG_USB_GSPCA_PAC207 is not set -# CONFIG_USB_GSPCA_PAC7302 is not set -# CONFIG_USB_GSPCA_PAC7311 is not set -# CONFIG_USB_GSPCA_SE401 is not set -# CONFIG_USB_GSPCA_SN9C2028 is not set -# CONFIG_USB_GSPCA_SN9C20X is not set -# CONFIG_USB_GSPCA_SONIXB is not set -# CONFIG_USB_GSPCA_SONIXJ is not set -# CONFIG_USB_GSPCA_SPCA1528 is not set -# CONFIG_USB_GSPCA_SPCA500 is not set -# CONFIG_USB_GSPCA_SPCA501 is not set -# CONFIG_USB_GSPCA_SPCA505 is not set -# CONFIG_USB_GSPCA_SPCA506 is not set -# CONFIG_USB_GSPCA_SPCA508 is not set -# CONFIG_USB_GSPCA_SPCA561 is not set -# CONFIG_USB_GSPCA_SQ905 is not set -# CONFIG_USB_GSPCA_SQ905C is not set -# CONFIG_USB_GSPCA_SQ930X is not set -# CONFIG_USB_GSPCA_STK014 is not set -# CONFIG_USB_GSPCA_STK1135 is not set -# CONFIG_USB_GSPCA_STV0680 is not set -# CONFIG_USB_GSPCA_SUNPLUS is not set -# CONFIG_USB_GSPCA_T613 is not set -# CONFIG_USB_GSPCA_TOPRO is not set -# CONFIG_USB_GSPCA_TOUPTEK is not set -# CONFIG_USB_GSPCA_TV8532 is not set -# CONFIG_USB_GSPCA_VC032X is not set -# CONFIG_USB_GSPCA_VICAM is not set -# CONFIG_USB_GSPCA_XIRLINK_CIT is not set -# CONFIG_USB_GSPCA_ZC3XX is not set -# CONFIG_USB_G_ACM_MS is not set -# CONFIG_USB_G_DBGP is not set -# CONFIG_USB_G_HID is not set -# CONFIG_USB_G_MULTI is not set -# CONFIG_USB_G_NCM is not set -# CONFIG_USB_G_NOKIA is not set -# CONFIG_USB_G_PRINTER is not set -# CONFIG_USB_G_SERIAL is not set -# CONFIG_USB_G_WEBCAM is not set -# CONFIG_USB_HACKRF is not set -# CONFIG_USB_HCD_TEST_MODE is not set -# CONFIG_USB_HID is not set -# CONFIG_USB_HIDDEV is not set -# CONFIG_USB_HSIC_USB3503 is not set -# CONFIG_USB_HSIC_USB4604 is not set -# CONFIG_USB_HSO is not set -# CONFIG_USB_HUB_USB251XB is not set -# CONFIG_USB_HWA_HCD is not set -# CONFIG_USB_IDMOUSE is not set -# CONFIG_USB_IMX21_HCD is not set -# CONFIG_USB_IOWARRIOR is not set -# CONFIG_USB_IPHETH is not set -# CONFIG_USB_ISIGHTFW is not set -# CONFIG_USB_ISP116X_HCD is not set -# CONFIG_USB_ISP1301 is not set -# CONFIG_USB_ISP1362_HCD is not set -# CONFIG_USB_ISP1760 is not set -# CONFIG_USB_ISP1760_HCD is not set -# CONFIG_USB_KAWETH is not set -# CONFIG_USB_KBD is not set -# CONFIG_USB_KC2190 is not set -# CONFIG_USB_LAN78XX is not set -# CONFIG_USB_LCD is not set -# CONFIG_USB_LD is not set -# CONFIG_USB_LED is not set -# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set -# CONFIG_USB_LED_TRIG is not set -# CONFIG_USB_LEGOTOWER is not set -# CONFIG_USB_LGM_PHY is not set -# CONFIG_USB_LINK_LAYER_TEST is not set -# CONFIG_USB_M5602 is not set -# CONFIG_USB_M66592 is not set -# CONFIG_USB_MASS_STORAGE is not set -# CONFIG_USB_MAX3420_UDC is not set -# CONFIG_USB_MAX3421_HCD is not set -# CONFIG_USB_MDC800 is not set -# CONFIG_USB_MICROTEK is not set -# CONFIG_USB_MIDI_GADGET is not set -# CONFIG_USB_MON is not set -# CONFIG_USB_MOUSE is not set -# CONFIG_USB_MSI2500 is not set -# CONFIG_USB_MSM_OTG is not set -# CONFIG_USB_MTU3 is not set -# CONFIG_USB_MUSB_GADGET is not set -# CONFIG_USB_MUSB_HDRC is not set -# CONFIG_USB_MUSB_HOST is not set -# CONFIG_USB_MV_U3D is not set -# CONFIG_USB_MV_UDC is not set -# CONFIG_USB_MXS_PHY is not set -# CONFIG_USB_NET2272 is not set -# CONFIG_USB_NET2280 is not set -# CONFIG_USB_NET_AQC111 is not set -# CONFIG_USB_NET_AX88179_178A is not set -# CONFIG_USB_NET_AX8817X is not set -# CONFIG_USB_NET_CDCETHER is not set -# CONFIG_USB_NET_CDC_EEM is not set -# CONFIG_USB_NET_CDC_MBIM is not set -# CONFIG_USB_NET_CDC_NCM is not set -# CONFIG_USB_NET_CDC_SUBSET is not set -# CONFIG_USB_NET_CH9200 is not set -# CONFIG_USB_NET_CX82310_ETH is not set -# CONFIG_USB_NET_DM9601 is not set -# CONFIG_USB_NET_DRIVERS is not set -# CONFIG_USB_NET_GL620A is not set -# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set -# CONFIG_USB_NET_INT51X1 is not set -# CONFIG_USB_NET_KALMIA is not set -# CONFIG_USB_NET_MCS7830 is not set -# CONFIG_USB_NET_NET1080 is not set -# CONFIG_USB_NET_PLUSB is not set -# CONFIG_USB_NET_QMI_WWAN is not set -# CONFIG_USB_NET_RNDIS_HOST is not set -# CONFIG_USB_NET_RNDIS_WLAN is not set -# CONFIG_USB_NET_SMSC75XX is not set -# CONFIG_USB_NET_SMSC95XX is not set -# CONFIG_USB_NET_SR9700 is not set -# CONFIG_USB_NET_SR9800 is not set -# CONFIG_USB_NET_ZAURUS is not set -# CONFIG_USB_OHCI_HCD is not set -# CONFIG_USB_OHCI_HCD_PCI is not set -# CONFIG_USB_OHCI_HCD_PPC_OF is not set -# CONFIG_USB_OHCI_HCD_PPC_OF_BE is not set -# CONFIG_USB_OHCI_HCD_PPC_OF_LE is not set -# CONFIG_USB_OHCI_HCD_SSB is not set -CONFIG_USB_OHCI_LITTLE_ENDIAN=y -# CONFIG_USB_ONBOARD_HUB is not set -# CONFIG_USB_OTG is not set -# CONFIG_USB_OTG_BLACKLIST_HUB is not set -# CONFIG_USB_OTG_DISABLE_EXTERNAL_HUB is not set -# CONFIG_USB_OTG_FSM is not set -# CONFIG_USB_OTG_PRODUCTLIST is not set -# CONFIG_USB_OTG_WHITELIST is not set -# CONFIG_USB_OXU210HP_HCD is not set -# CONFIG_USB_PCI is not set -# CONFIG_USB_PEGASUS is not set -# CONFIG_USB_PHY is not set -# CONFIG_USB_PRINTER is not set -# CONFIG_USB_PWC_INPUT_EVDEV is not set -# CONFIG_USB_PXA27X is not set -# CONFIG_USB_QCOM_EUD is not set -# CONFIG_USB_R8A66597 is not set -# CONFIG_USB_R8A66597_HCD is not set -# CONFIG_USB_RAW_GADGET is not set -# CONFIG_USB_RCAR_PHY is not set -# CONFIG_USB_RENESAS_USBHS is not set -# CONFIG_USB_RIO500 is not set -# CONFIG_USB_ROLES_INTEL_XHCI is not set -# CONFIG_USB_ROLE_SWITCH is not set -# CONFIG_USB_RTL8150 is not set -# CONFIG_USB_RTL8152 is not set -# CONFIG_USB_RTL8153_ECM is not set -# CONFIG_USB_S2255 is not set -# CONFIG_USB_SERIAL is not set -# CONFIG_USB_SERIAL_AIRCABLE is not set -# CONFIG_USB_SERIAL_ARK3116 is not set -# CONFIG_USB_SERIAL_BELKIN is not set -# CONFIG_USB_SERIAL_CH341 is not set -# CONFIG_USB_SERIAL_CP210X is not set -# CONFIG_USB_SERIAL_CYBERJACK is not set -# CONFIG_USB_SERIAL_CYPRESS_M8 is not set -# CONFIG_USB_SERIAL_DEBUG is not set -# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set -# CONFIG_USB_SERIAL_EDGEPORT is not set -# CONFIG_USB_SERIAL_EDGEPORT_TI is not set -# CONFIG_USB_SERIAL_EMPEG is not set -# CONFIG_USB_SERIAL_F81232 is not set -# CONFIG_USB_SERIAL_F8153X is not set -# CONFIG_USB_SERIAL_FTDI_SIO is not set -# CONFIG_USB_SERIAL_GARMIN is not set -CONFIG_USB_SERIAL_GENERIC=y -# CONFIG_USB_SERIAL_IPAQ is not set -# CONFIG_USB_SERIAL_IPW is not set -# CONFIG_USB_SERIAL_IR is not set -# CONFIG_USB_SERIAL_IUU is not set -# CONFIG_USB_SERIAL_KEYSPAN is not set -CONFIG_USB_SERIAL_KEYSPAN_MPR=y -# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set -CONFIG_USB_SERIAL_KEYSPAN_USA18X=y -CONFIG_USB_SERIAL_KEYSPAN_USA19=y -CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y -CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y -CONFIG_USB_SERIAL_KEYSPAN_USA19W=y -CONFIG_USB_SERIAL_KEYSPAN_USA28=y -CONFIG_USB_SERIAL_KEYSPAN_USA28X=y -CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y -CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y -CONFIG_USB_SERIAL_KEYSPAN_USA49W=y -CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y -# CONFIG_USB_SERIAL_KLSI is not set -# CONFIG_USB_SERIAL_KOBIL_SCT is not set -# CONFIG_USB_SERIAL_MCT_U232 is not set -# CONFIG_USB_SERIAL_METRO is not set -# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set -# CONFIG_USB_SERIAL_MOS7720 is not set -# CONFIG_USB_SERIAL_MOS7840 is not set -# CONFIG_USB_SERIAL_MXUPORT is not set -# CONFIG_USB_SERIAL_NAVMAN is not set -# CONFIG_USB_SERIAL_OMNINET is not set -# CONFIG_USB_SERIAL_OPTICON is not set -# CONFIG_USB_SERIAL_OPTION is not set -# CONFIG_USB_SERIAL_OTI6858 is not set -# CONFIG_USB_SERIAL_PL2303 is not set -# CONFIG_USB_SERIAL_QCAUX is not set -# CONFIG_USB_SERIAL_QT2 is not set -# CONFIG_USB_SERIAL_QUALCOMM is not set -# CONFIG_USB_SERIAL_SAFE is not set -CONFIG_USB_SERIAL_SAFE_PADDED=y -# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set -# CONFIG_USB_SERIAL_SIMPLE is not set -# CONFIG_USB_SERIAL_SPCP8X5 is not set -# CONFIG_USB_SERIAL_SSU100 is not set -# CONFIG_USB_SERIAL_SYMBOL is not set -# CONFIG_USB_SERIAL_TI is not set -# CONFIG_USB_SERIAL_UPD78F0730 is not set -# CONFIG_USB_SERIAL_VISOR is not set -# CONFIG_USB_SERIAL_WHITEHEAT is not set -# CONFIG_USB_SERIAL_WISHBONE is not set -# CONFIG_USB_SERIAL_XIRCOM is not set -# CONFIG_USB_SERIAL_XR is not set -# CONFIG_USB_SERIAL_XSENS_MT is not set -# CONFIG_USB_SEVSEG is not set -# CONFIG_USB_SIERRA_NET is not set -# CONFIG_USB_SISUSBVGA is not set -# CONFIG_USB_SL811_HCD is not set -# CONFIG_USB_SNP_UDC_PLAT is not set -# CONFIG_USB_SPEEDTOUCH is not set -# CONFIG_USB_STKWEBCAM is not set -# CONFIG_USB_STORAGE is not set -# CONFIG_USB_STORAGE_ALAUDA is not set -# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set -# CONFIG_USB_STORAGE_DATAFAB is not set -# CONFIG_USB_STORAGE_DEBUG is not set -# CONFIG_USB_STORAGE_ENE_UB6250 is not set -# CONFIG_USB_STORAGE_FREECOM is not set -# CONFIG_USB_STORAGE_ISD200 is not set -# CONFIG_USB_STORAGE_JUMPSHOT is not set -# CONFIG_USB_STORAGE_KARMA is not set -# CONFIG_USB_STORAGE_ONETOUCH is not set -# CONFIG_USB_STORAGE_REALTEK is not set -# CONFIG_USB_STORAGE_SDDR09 is not set -# CONFIG_USB_STORAGE_SDDR55 is not set -# CONFIG_USB_STORAGE_USBAT is not set -# CONFIG_USB_STV06XX is not set -# CONFIG_USB_SUPPORT is not set -# CONFIG_USB_SWITCH_FSA9480 is not set -# CONFIG_USB_TEST is not set -# CONFIG_USB_TMC is not set -# CONFIG_USB_TRANCEVIBRATOR is not set -# CONFIG_USB_UAS is not set -# CONFIG_USB_UEAGLEATM is not set -# CONFIG_USB_ULPI is not set -# CONFIG_USB_ULPI_BUS is not set -# CONFIG_USB_USBNET is not set -# CONFIG_USB_USS720 is not set -# CONFIG_USB_VIDEO_CLASS is not set -CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y -# CONFIG_USB_VL600 is not set -# CONFIG_USB_WDM is not set -# CONFIG_USB_WHCI_HCD is not set -# CONFIG_USB_WUSB is not set -# CONFIG_USB_WUSB_CBAF is not set -# CONFIG_USB_XEN_HCD is not set -# CONFIG_USB_XHCI_DBGCAP is not set -# CONFIG_USB_XHCI_HCD is not set -# CONFIG_USB_XHCI_MVEBU is not set -# CONFIG_USB_XHCI_PCI_RENESAS is not set -# CONFIG_USB_XUSBATM is not set -# CONFIG_USB_YUREX is not set -# CONFIG_USB_ZD1201 is not set -# CONFIG_USB_ZERO is not set -# CONFIG_USB_ZR364XX is not set -# CONFIG_USELIB is not set -# CONFIG_USERFAULTFD is not set -# CONFIG_USERIO is not set -# CONFIG_USER_DECRYPTED_DATA is not set -# CONFIG_USE_OF is not set -# CONFIG_UTS_NS is not set -# CONFIG_UWB is not set -# CONFIG_U_SERIAL_CONSOLE is not set -# CONFIG_V4L_MEM2MEM_DRIVERS is not set -# CONFIG_V4L_PLATFORM_DRIVERS is not set -# CONFIG_V4L_TEST_DRIVERS is not set -# CONFIG_VALIDATE_FS_PARSER is not set -# CONFIG_VBOXGUEST is not set -# CONFIG_VCNL3020 is not set -# CONFIG_VCNL4000 is not set -# CONFIG_VCNL4035 is not set -# CONFIG_VCPU_STALL_DETECTOR is not set -# CONFIG_VDPA is not set -CONFIG_VDSO=y -# CONFIG_VEML6030 is not set -# CONFIG_VEML6070 is not set -# CONFIG_VETH is not set -# CONFIG_VEXPRESS_CONFIG is not set -# CONFIG_VF610_ADC is not set -# CONFIG_VF610_DAC is not set -# CONFIG_VFAT_FS is not set -# CONFIG_VFIO is not set -# CONFIG_VGASTATE is not set -# CONFIG_VGA_ARB is not set -# CONFIG_VGA_CONSOLE is not set -# CONFIG_VGA_SWITCHEROO is not set -# CONFIG_VHOST_CROSS_ENDIAN_LEGACY is not set -CONFIG_VHOST_MENU=y -# CONFIG_VHOST_NET is not set -# CONFIG_VHOST_VSOCK is not set -# CONFIG_VIA_RHINE is not set -# CONFIG_VIA_VELOCITY is not set -# CONFIG_VIDEO_AD5398 is not set -# CONFIG_VIDEO_AD5820 is not set -# CONFIG_VIDEO_AD9389B is not set -# CONFIG_VIDEO_ADP1653 is not set -# CONFIG_VIDEO_ADV7170 is not set -# CONFIG_VIDEO_ADV7175 is not set -# CONFIG_VIDEO_ADV7180 is not set -# CONFIG_VIDEO_ADV7183 is not set -# CONFIG_VIDEO_ADV7343 is not set -# CONFIG_VIDEO_ADV7393 is not set -# CONFIG_VIDEO_ADV748X is not set -# CONFIG_VIDEO_ADV7511 is not set -# CONFIG_VIDEO_ADV7604 is not set -# CONFIG_VIDEO_ADV7842 is not set -# CONFIG_VIDEO_ADV_DEBUG is not set -# CONFIG_VIDEO_AK7375 is not set -# CONFIG_VIDEO_AK881X is not set -# CONFIG_VIDEO_AM437X_VPFE is not set -# CONFIG_VIDEO_AR0521 is not set -# CONFIG_VIDEO_ASPEED is not set -# CONFIG_VIDEO_ATMEL_ISC is not set -# CONFIG_VIDEO_ATMEL_ISI is not set -# CONFIG_VIDEO_AU0828 is not set -# CONFIG_VIDEO_BT819 is not set -# CONFIG_VIDEO_BT848 is not set -# CONFIG_VIDEO_BT856 is not set -# CONFIG_VIDEO_BT866 is not set -# CONFIG_VIDEO_CADENCE is not set -# CONFIG_VIDEO_CADENCE_CSI2RX is not set -# CONFIG_VIDEO_CADENCE_CSI2TX is not set -# CONFIG_VIDEO_CAFE_CCIC is not set -# CONFIG_VIDEO_CCS is not set -# CONFIG_VIDEO_CODA is not set -# CONFIG_VIDEO_CS3308 is not set -# CONFIG_VIDEO_CS5345 is not set -# CONFIG_VIDEO_CS53L32A is not set -# CONFIG_VIDEO_CX231XX is not set -# CONFIG_VIDEO_CX2341X is not set -# CONFIG_VIDEO_CX25840 is not set -# CONFIG_VIDEO_CX88 is not set -# CONFIG_VIDEO_DEV is not set -# CONFIG_VIDEO_DM6446_CCDC is not set -# CONFIG_VIDEO_DT3155 is not set -# CONFIG_VIDEO_DW9714 is not set -# CONFIG_VIDEO_DW9768 is not set -# CONFIG_VIDEO_DW9807_VCM is not set -# CONFIG_VIDEO_EM28XX is not set -# CONFIG_VIDEO_ET8EK8 is not set -# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set -# CONFIG_VIDEO_GO7007 is not set -# CONFIG_VIDEO_GS1662 is not set -# CONFIG_VIDEO_HDPVR is not set -# CONFIG_VIDEO_HEXIUM_GEMINI is not set -# CONFIG_VIDEO_HEXIUM_ORION is not set -# CONFIG_VIDEO_HI556 is not set -# CONFIG_VIDEO_HI846 is not set -# CONFIG_VIDEO_HI847 is not set -# CONFIG_VIDEO_I2C is not set -# CONFIG_VIDEO_IMX208 is not set -# CONFIG_VIDEO_IMX214 is not set -# CONFIG_VIDEO_IMX219 is not set -# CONFIG_VIDEO_IMX258 is not set -# CONFIG_VIDEO_IMX274 is not set -# CONFIG_VIDEO_IMX290 is not set -# CONFIG_VIDEO_IMX319 is not set -# CONFIG_VIDEO_IMX334 is not set -# CONFIG_VIDEO_IMX335 is not set -# CONFIG_VIDEO_IMX355 is not set -# CONFIG_VIDEO_IMX412 is not set -# CONFIG_VIDEO_IMX477 is not set -# CONFIG_VIDEO_IMX8_JPEG is not set -# CONFIG_VIDEO_IMX_PXP is not set -# CONFIG_VIDEO_IRS1125 is not set -# CONFIG_VIDEO_IR_I2C is not set -# CONFIG_VIDEO_ISL7998X is not set -# CONFIG_VIDEO_IVTV is not set -# CONFIG_VIDEO_KS0127 is not set -# CONFIG_VIDEO_LM3560 is not set -# CONFIG_VIDEO_LM3646 is not set -# CONFIG_VIDEO_M52790 is not set -# CONFIG_VIDEO_M5MOLS is not set -# CONFIG_VIDEO_MAX9286 is not set -# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set -# CONFIG_VIDEO_ML86V7667 is not set -# CONFIG_VIDEO_MSP3400 is not set -# CONFIG_VIDEO_MT9M001 is not set -# CONFIG_VIDEO_MT9M032 is not set -# CONFIG_VIDEO_MT9M111 is not set -# CONFIG_VIDEO_MT9P031 is not set -# CONFIG_VIDEO_MT9T001 is not set -# CONFIG_VIDEO_MT9T112 is not set -# CONFIG_VIDEO_MT9V011 is not set -# CONFIG_VIDEO_MT9V032 is not set -# CONFIG_VIDEO_MT9V111 is not set -# CONFIG_VIDEO_MUX is not set -# CONFIG_VIDEO_MXB is not set -# CONFIG_VIDEO_NOON010PC30 is not set -# CONFIG_VIDEO_OG01A1B is not set -# CONFIG_VIDEO_OMAP2_VOUT is not set -# CONFIG_VIDEO_OV02A10 is not set -# CONFIG_VIDEO_OV08D10 is not set -# CONFIG_VIDEO_OV13858 is not set -# CONFIG_VIDEO_OV13B10 is not set -# CONFIG_VIDEO_OV2311 is not set -# CONFIG_VIDEO_OV2640 is not set -# CONFIG_VIDEO_OV2659 is not set -# CONFIG_VIDEO_OV2680 is not set -# CONFIG_VIDEO_OV2685 is not set -# CONFIG_VIDEO_OV2740 is not set -# CONFIG_VIDEO_OV5640 is not set -# CONFIG_VIDEO_OV5645 is not set -# CONFIG_VIDEO_OV5647 is not set -# CONFIG_VIDEO_OV5648 is not set -# CONFIG_VIDEO_OV5670 is not set -# CONFIG_VIDEO_OV5675 is not set -# CONFIG_VIDEO_OV5693 is not set -# CONFIG_VIDEO_OV5695 is not set -# CONFIG_VIDEO_OV6650 is not set -# CONFIG_VIDEO_OV7251 is not set -# CONFIG_VIDEO_OV7640 is not set -# CONFIG_VIDEO_OV7670 is not set -# CONFIG_VIDEO_OV772X is not set -# CONFIG_VIDEO_OV7740 is not set -# CONFIG_VIDEO_OV8856 is not set -# CONFIG_VIDEO_OV8865 is not set -# CONFIG_VIDEO_OV9281 is not set -# CONFIG_VIDEO_OV9282 is not set -# CONFIG_VIDEO_OV9640 is not set -# CONFIG_VIDEO_OV9650 is not set -# CONFIG_VIDEO_OV9734 is not set -# CONFIG_VIDEO_PVRUSB2 is not set -# CONFIG_VIDEO_RDACM20 is not set -# CONFIG_VIDEO_RDACM21 is not set -# CONFIG_VIDEO_RJ54N1 is not set -# CONFIG_VIDEO_S5C73M3 is not set -# CONFIG_VIDEO_S5K4ECGX is not set -# CONFIG_VIDEO_S5K5BAF is not set -# CONFIG_VIDEO_S5K6A3 is not set -# CONFIG_VIDEO_S5K6AA is not set -# CONFIG_VIDEO_SAA6588 is not set -# CONFIG_VIDEO_SAA6752HS is not set -# CONFIG_VIDEO_SAA7110 is not set -# CONFIG_VIDEO_SAA711X is not set -# CONFIG_VIDEO_SAA7127 is not set -# CONFIG_VIDEO_SAA7134 is not set -# CONFIG_VIDEO_SAA717X is not set -# CONFIG_VIDEO_SAA7185 is not set -# CONFIG_VIDEO_SH_MOBILE_CEU is not set -# CONFIG_VIDEO_SMIAPP is not set -# CONFIG_VIDEO_SONY_BTF_MPX is not set -# CONFIG_VIDEO_SR030PC30 is not set -# CONFIG_VIDEO_STK1160_COMMON is not set -# CONFIG_VIDEO_ST_MIPID02 is not set -# CONFIG_VIDEO_TC358743 is not set -# CONFIG_VIDEO_TDA1997X is not set -# CONFIG_VIDEO_TDA7432 is not set -# CONFIG_VIDEO_TDA9840 is not set -# CONFIG_VIDEO_TEA6415C is not set -# CONFIG_VIDEO_TEA6420 is not set -# CONFIG_VIDEO_THS7303 is not set -# CONFIG_VIDEO_THS8200 is not set -# CONFIG_VIDEO_TIMBERDALE is not set -# CONFIG_VIDEO_TLV320AIC23B is not set -# CONFIG_VIDEO_TM6000 is not set -# CONFIG_VIDEO_TVAUDIO is not set -# CONFIG_VIDEO_TVP514X is not set -# CONFIG_VIDEO_TVP5150 is not set -# CONFIG_VIDEO_TVP7002 is not set -# CONFIG_VIDEO_TW2804 is not set -# CONFIG_VIDEO_TW9903 is not set -# CONFIG_VIDEO_TW9906 is not set -# CONFIG_VIDEO_TW9910 is not set -# CONFIG_VIDEO_UDA1342 is not set -# CONFIG_VIDEO_UPD64031A is not set -# CONFIG_VIDEO_UPD64083 is not set -# CONFIG_VIDEO_USBTV is not set -# CONFIG_VIDEO_USBVISION is not set -# CONFIG_VIDEO_V4L2 is not set -# CONFIG_VIDEO_VP27SMPX is not set -# CONFIG_VIDEO_VPX3220 is not set -# CONFIG_VIDEO_VS6624 is not set -# CONFIG_VIDEO_WM8739 is not set -# CONFIG_VIDEO_WM8775 is not set -# CONFIG_VIDEO_XILINX is not set -# CONFIG_VIDEO_ZORAN is not set -# CONFIG_VIRTIO_BALLOON is not set -# CONFIG_VIRTIO_BLK_SCSI is not set -# CONFIG_VIRTIO_CONSOLE is not set -# CONFIG_VIRTIO_FS is not set -# CONFIG_VIRTIO_INPUT is not set -CONFIG_VIRTIO_MENU=y -# CONFIG_VIRTIO_MMIO is not set -# CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES is not set -# CONFIG_VIRTIO_PCI is not set -# CONFIG_VIRTUALIZATION is not set -# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set -# CONFIG_VIRT_DRIVERS is not set -CONFIG_VIRT_TO_BUS=y -# CONFIG_VITESSE_PHY is not set -# CONFIG_VL53L0X_I2C is not set -# CONFIG_VL6180 is not set -CONFIG_VLAN_8021Q=y -# CONFIG_VLAN_8021Q_GVRP is not set -# CONFIG_VLAN_8021Q_MVRP is not set -# CONFIG_VMAP_STACK is not set -# CONFIG_VME_BUS is not set -# CONFIG_VMLINUX_MAP is not set -# CONFIG_VMSPLIT_1G is not set -# CONFIG_VMSPLIT_2G is not set -# CONFIG_VMSPLIT_2G_OPT is not set -CONFIG_VMSPLIT_3G=y -# CONFIG_VMSPLIT_3G_OPT is not set -# CONFIG_VMWARE_PVSCSI is not set -# CONFIG_VMWARE_VMCI is not set -# CONFIG_VMXNET3 is not set -# CONFIG_VM_EVENT_COUNTERS is not set -# CONFIG_VOP_BUS is not set -# CONFIG_VORTEX is not set -# CONFIG_VSOCKETS is not set -# CONFIG_VSOCKETS_DIAG is not set -# CONFIG_VT is not set -# CONFIG_VT6655 is not set -# CONFIG_VT6656 is not set -# CONFIG_VXFS_FS is not set -# CONFIG_VXGE is not set -# CONFIG_VXLAN is not set -# CONFIG_VZ89X is not set -# CONFIG_W1 is not set -# CONFIG_W1_CON is not set -# CONFIG_W1_MASTER_DS1WM is not set -# CONFIG_W1_MASTER_DS2482 is not set -# CONFIG_W1_MASTER_DS2490 is not set -# CONFIG_W1_MASTER_GPIO is not set -# CONFIG_W1_MASTER_MATROX is not set -# CONFIG_W1_MASTER_SGI is not set -# CONFIG_W1_SLAVE_DS2405 is not set -# CONFIG_W1_SLAVE_DS2406 is not set -# CONFIG_W1_SLAVE_DS2408 is not set -# CONFIG_W1_SLAVE_DS2413 is not set -# CONFIG_W1_SLAVE_DS2423 is not set -# CONFIG_W1_SLAVE_DS2430 is not set -# CONFIG_W1_SLAVE_DS2431 is not set -# CONFIG_W1_SLAVE_DS2433 is not set -# CONFIG_W1_SLAVE_DS2438 is not set -# CONFIG_W1_SLAVE_DS250X is not set -# CONFIG_W1_SLAVE_DS2780 is not set -# CONFIG_W1_SLAVE_DS2781 is not set -# CONFIG_W1_SLAVE_DS2805 is not set -# CONFIG_W1_SLAVE_DS28E04 is not set -# CONFIG_W1_SLAVE_DS28E17 is not set -# CONFIG_W1_SLAVE_SMEM is not set -# CONFIG_W1_SLAVE_THERM is not set -# CONFIG_W83627HF_WDT is not set -# CONFIG_W83877F_WDT is not set -# CONFIG_W83977F_WDT is not set -# CONFIG_WAN is not set -# CONFIG_WANXL is not set -# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set -CONFIG_WATCHDOG=y -# CONFIG_WATCHDOG_CORE is not set -CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y -# CONFIG_WATCHDOG_HRTIMER_PRETIMEOUT is not set -# CONFIG_WATCHDOG_NOWAYOUT is not set -CONFIG_WATCHDOG_OPEN_TIMEOUT=0 -# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set -# CONFIG_WATCHDOG_SYSFS is not set -# CONFIG_WATCH_QUEUE is not set -# CONFIG_WD80x3 is not set -# CONFIG_WDAT_WDT is not set -# CONFIG_WDTPCI is not set -CONFIG_WERROR=y -# CONFIG_WEXT_CORE is not set -# CONFIG_WEXT_PRIV is not set -# CONFIG_WEXT_PROC is not set -# CONFIG_WEXT_SPY is not set -CONFIG_WILINK_PLATFORM_DATA=y -# CONFIG_WIMAX is not set -# CONFIG_WIREGUARD is not set -CONFIG_WIRELESS=y -# CONFIG_WIRELESS_EXT is not set -# CONFIG_WIRELESS_WDS is not set -# CONFIG_WIZNET_W5100 is not set -# CONFIG_WIZNET_W5300 is not set -# CONFIG_WL1251 is not set -# CONFIG_WL12XX is not set -# CONFIG_WL18XX is not set -CONFIG_WLAN=y -# CONFIG_WLAN_VENDOR_ADMTEK is not set -# CONFIG_WLAN_VENDOR_ATH is not set -# CONFIG_WLAN_VENDOR_ATMEL is not set -# CONFIG_WLAN_VENDOR_BROADCOM is not set -# CONFIG_WLAN_VENDOR_CISCO is not set -# CONFIG_WLAN_VENDOR_INTEL is not set -# CONFIG_WLAN_VENDOR_INTERSIL is not set -# CONFIG_WLAN_VENDOR_MARVELL is not set -# CONFIG_WLAN_VENDOR_MEDIATEK is not set -# CONFIG_WLAN_VENDOR_MICROCHIP is not set -# CONFIG_WLAN_VENDOR_PURELIFI is not set -# CONFIG_WLAN_VENDOR_QUANTENNA is not set -# CONFIG_WLAN_VENDOR_RALINK is not set -# CONFIG_WLAN_VENDOR_REALTEK is not set -# CONFIG_WLAN_VENDOR_RSI is not set -# CONFIG_WLAN_VENDOR_SILABS is not set -# CONFIG_WLAN_VENDOR_ST is not set -# CONFIG_WLAN_VENDOR_TI is not set -# CONFIG_WLAN_VENDOR_ZYDAS is not set -# CONFIG_WLCORE is not set -# CONFIG_WMI_BMOF is not set -CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y -# CONFIG_WQ_WATCHDOG is not set -# CONFIG_WWAN is not set -# CONFIG_WWAN_HWSIM is not set -# CONFIG_WW_MUTEX_SELFTEST is not set -# CONFIG_X25 is not set -# CONFIG_X509_CERTIFICATE_PARSER is not set -# CONFIG_X86_PLATFORM_DRIVERS_HP is not set -# CONFIG_X86_PKG_TEMP_THERMAL is not set -CONFIG_X86_SYSFB=y -# CONFIG_XDP_SOCKETS is not set -# CONFIG_XEN is not set -# CONFIG_XEN_VIRTIO is not set -# CONFIG_XEN_GRANT_DMA_ALLOC is not set -# CONFIG_XEN_PVCALLS_FRONTEND is not set -# CONFIG_XEN_PV_MSR_SAFE is not set -CONFIG_XEN_SCRUB_PAGES_DEFAULT=y -CONFIG_XFRM=y -# CONFIG_XFRM_INTERFACE is not set -# CONFIG_XFRM_IPCOMP is not set -# CONFIG_XFRM_MIGRATE is not set -# CONFIG_XFRM_STATISTICS is not set -# CONFIG_XFRM_SUB_POLICY is not set -# CONFIG_XFRM_USER is not set -# CONFIG_XFRM_USER_COMPAT is not set -# CONFIG_XFS_DEBUG is not set -# CONFIG_XFS_FS is not set -# CONFIG_XFS_ONLINE_SCRUB is not set -# CONFIG_XFS_POSIX_ACL is not set -# CONFIG_XFS_QUOTA is not set -# CONFIG_XFS_RT is not set -# CONFIG_XFS_SUPPORT_V4 is not set -# CONFIG_XFS_WARN is not set -# CONFIG_XIAOMI_WMI is not set -# CONFIG_XILINX_AXI_EMAC is not set -# CONFIG_XILINX_DMA is not set -# CONFIG_XILINX_EMACLITE is not set -# CONFIG_XILINX_GMII2RGMII is not set -# CONFIG_XILINX_INTC is not set -# CONFIG_XILINX_LL_TEMAC is not set -# CONFIG_XILINX_SDFEC is not set -# CONFIG_XILINX_VCU is not set -# CONFIG_XILINX_WATCHDOG is not set -# CONFIG_XILINX_XADC is not set -# CONFIG_XILINX_ZYNQMP_DMA is not set -# CONFIG_XILINX_ZYNQMP_DPDMA is not set -# CONFIG_XILLYBUS is not set -# CONFIG_XILLYUSB is not set -# CONFIG_XIL_AXIS_FIFO is not set -# CONFIG_XIP_KERNEL is not set -# CONFIG_XMON is not set -CONFIG_XZ_DEC=y -# CONFIG_XZ_DEC_ARM is not set -# CONFIG_XZ_DEC_ARMTHUMB is not set -# CONFIG_XZ_DEC_BCJ is not set -# CONFIG_XZ_DEC_IA64 is not set -# CONFIG_XZ_DEC_MICROLZMA is not set -# CONFIG_XZ_DEC_POWERPC is not set -# CONFIG_XZ_DEC_SPARC is not set -# CONFIG_XZ_DEC_TEST is not set -# CONFIG_XZ_DEC_X86 is not set -# CONFIG_YAM is not set -# CONFIG_YAMAHA_YAS530 is not set -# CONFIG_YELLOWFIN is not set -# CONFIG_YENTA is not set -# CONFIG_YENTA_O2 is not set -# CONFIG_YENTA_RICOH is not set -# CONFIG_YENTA_TI is not set -# CONFIG_YENTA_TOSHIBA is not set -# CONFIG_YOGABOOK_WMI is not set -# CONFIG_ZBUD is not set -# CONFIG_ZD1211RW is not set -# CONFIG_ZD1211RW_DEBUG is not set -# CONFIG_ZEROPLUS_FF is not set -# CONFIG_ZERO_CALL_USED_REGS is not set -# CONFIG_ZIIRAVE_WATCHDOG is not set -# CONFIG_ZISOFS is not set -# CONFIG_ZLIB_DEFLATE is not set -# CONFIG_ZLIB_INFLATE is not set -CONFIG_ZONE_DMA=y -# CONFIG_ZOPT2201 is not set -# CONFIG_ZPA2326 is not set -# CONFIG_ZPOOL is not set -# CONFIG_ZRAM is not set -# CONFIG_ZRAM_DEF_COMP_842 is not set -# CONFIG_ZRAM_DEF_COMP_LZ4 is not set -# CONFIG_ZRAM_DEF_COMP_LZ4HC is not set -# CONFIG_ZRAM_DEF_COMP_LZO is not set -# CONFIG_ZRAM_DEF_COMP_LZORLE is not set -# CONFIG_ZRAM_DEF_COMP_ZSTD is not set -# CONFIG_ZRAM_MEMORY_TRACKING is not set -# CONFIG_ZSMALLOC is not set -# CONFIG_ZSWAP is not set -# CONFIG_ZX_TDM is not set -# CONFIG_AHCI_BRCM is not set -# CONFIG_ARCH_BCM_HR2 is not set -# CONFIG_ARM64_4K_PAGES is not set -# CONFIG_BCM7038_L1_IRQ is not set -# CONFIG_BCM7120_L2_IRQ is not set -# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set -# CONFIG_BRCMSTB_L2_IRQ is not set -# CONFIG_CHARGER_QCOM_SMBB is not set -# CONFIG_CPU_LITTLE_ENDIAN is not set -# CONFIG_DEBUG_VM_PGFLAGS is not set -# CONFIG_DEBUG_VM_RB is not set -# CONFIG_DEBUG_VM_VMACACHE is not set -# CONFIG_DVB_USB is not set -# CONFIG_DYNAMIC_DEBUG_CORE is not set -# CONFIG_FTRACE_SORT_STARTUP_TEST is not set -# CONFIG_HISI_PTT is not set -# CONFIG_HIST_TRIGGERS_DEBUG is not set -# CONFIG_INPUT_PM8941_PWRKEY is not set -# CONFIG_INPUT_PM8XXX_VIBRATOR is not set -# CONFIG_IR_SIR is not set -# CONFIG_IR_TTUSBIR is not set -# CONFIG_KASAN_MODULE_TEST is not set -# CONFIG_LD_HEAD_STUB_CATCH is not set -# CONFIG_LIRC is not set -# CONFIG_LIVEPATCH is not set -# CONFIG_MEDIA_CONTROLLER_DVB is not set -# CONFIG_MMC_SDHCI_BRCMSTB is not set -# CONFIG_MTD_NAND_BRCMNAND_BCM63XX is not set -# CONFIG_MTD_NAND_BRCMNAND_BCMBCA is not set -# CONFIG_MTD_NAND_BRCMNAND_BRCMSTB is not set -# CONFIG_MTD_NAND_BRCMNAND_IPROC is not set -# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set -# CONFIG_NET_DSA_QCA8K_LEDS_SUPPORT is not set -# CONFIG_NF_CONNTRACK is not set -# CONFIG_NF_CONNTRACK_LABELS is not set -# CONFIG_NF_TABLES is not set -# CONFIG_NVMEM_LAYOUT_SL28_VPD is not set -# CONFIG_PPC_QUEUED_SPINLOCKS is not set -# CONFIG_PWM_IMG is not set -# CONFIG_PWM_MEDIATEK is not set -# CONFIG_RV is not set -# CONFIG_SND_SOC_ROCKCHIP is not set -# CONFIG_SPI_ROCKCHIP_SFC is not set -# CONFIG_SYNTH_EVENT_GEN_TEST is not set -# CONFIG_TEST_DEBUG_VIRTUAL is not set -# CONFIG_TEST_DYNAMIC_DEBUG is not set -# CONFIG_TLS_DEVICE is not set -# CONFIG_TRACE_MMIO_ACCESS is not set -# CONFIG_UBSAN_DIV_ZERO is not set -# CONFIG_UBSAN_UNREACHABLE is not set -# CONFIG_UNUSED_BOARD_FILES is not set -# CONFIG_USB_XEN_HCD is not set -# CONFIG_VIDEO_CODA is not set -# CONFIG_VIDEO_IMX8_JPEG is not set -# CONFIG_VIDEO_IMX_PXP is not set -# CONFIG_VIDEO_MEM2MEM_DEINTERLACE is not set -# CONFIG_WEXT_CORE is not set -# CONFIG_WEXT_PRIV is not set -# CONFIG_WEXT_PROC is not set -# CONFIG_WEXT_SPY is not set -# CONFIG_WIRELESS_EXT is not set -# CONFIG_X86_AMD_PSTATE_UT is not set -# CONFIG_ZRAM_DEF_COMP_842 is not set -# CONFIG_ZRAM_MULTI_COMP is not set -# CONFIG_PATA_PARPORT is not set -CONFIG_MD_BITMAP_FILE=y -# CONFIG_NETCONSOLE_EXTENDED_LOG is not set -# CONFIG_PDS_CORE is not set -# CONFIG_MLX5_MACSEC is not set -# CONFIG_VCAP is not set -# CONFIG_MARVELL_88Q2XXX_PHY is not set -# CONFIG_MICROCHIP_T1S_PHY is not set -# CONFIG_NXP_CBTX_PHY is not set -# CONFIG_NCN26000_PHY is not set -# CONFIG_PPPOE_HASH_BITS_1 is not set -# CONFIG_PPPOE_HASH_BITS_2 is not set -CONFIG_PPPOE_HASH_BITS_4=y -# CONFIG_PPPOE_HASH_BITS_8 is not set -# CONFIG_TOUCHSCREEN_CYTTSP5 is not set -# CONFIG_TOUCHSCREEN_HYNITRON_CSTXXX is not set -# CONFIG_TOUCHSCREEN_NOVATEK_NVT_TS is not set -# CONFIG_TOUCHSCREEN_IQS7211 is not set -# CONFIG_TOUCHSCREEN_HIMAX_HX83112B is not set -# CONFIG_LEGACY_TIOCSTI is not set -# CONFIG_SERIAL_8250_PCI1XXXX is not set -# CONFIG_SPI_PCI1XXXX is not set -# CONFIG_PTP_1588_CLOCK_MOCK is not set -# CONFIG_GPIO_FXL6408 is not set -# CONFIG_GPIO_DS4520 is not set -# CONFIG_GPIO_ELKHARTLAKE is not set -# CONFIG_GPIO_LATCH is not set -# CONFIG_SENSORS_HS3001 is not set -# CONFIG_MAX31827 is not set -# CONFIG_SENSORS_MC34VR500 is not set -# CONFIG_SENSORS_OXP is not set -# CONFIG_SENSORS_ACBEL_FSG032 is not set -# CONFIG_SENSORS_MPQ7932 is not set -# CONFIG_SENSORS_TDA38640 is not set -# CONFIG_SENSORS_HP_WMI is not set -# CONFIG_ADVANTECH_EC_WDT is not set -# CONFIG_MFD_SMPRO is not set -# CONFIG_MFD_CS42L43_I2C is not set -# CONFIG_MFD_MAX77541 is not set -# CONFIG_MFD_TPS6594_I2C is not set -# CONFIG_MFD_TPS6594_SPI is not set -# CONFIG_MFD_INTEL_M10_BMC_SPI is not set -# CONFIG_DRM_AMDGPU_WERROR is not set -CONFIG_DRM_VIRTIO_GPU_KMS=y -# CONFIG_DRM_PANEL_AUO_A030JTN01 is not set -# CONFIG_DRM_PANEL_ORISETECH_OTA5601A is not set -# CONFIG_DRM_LOONGSON is not set -CONFIG_FB_DEVICE=y -# CONFIG_BACKLIGHT_KTZ8866 is not set -# CONFIG_DRM_ACCEL is not set -# CONFIG_HID_EVISION is not set -# CONFIG_HID_GOOGLE_STADIA_FF is not set -# CONFIG_HID_NVIDIA_SHIELD is not set -# CONFIG_LEDS_AW200XX is not set -# CONFIG_LEDS_PCA995X is not set -# CONFIG_LEDS_BD2606MVV is not set -# CONFIG_XILINX_XDMA is not set -# CONFIG_HYPERV_VTL_MODE is not set -# CONFIG_YOGABOOK is not set -# CONFIG_LENOVO_YMC is not set -# CONFIG_INTEL_IFS is not set -# CONFIG_MSI_EC is not set -# CONFIG_WPCM450_SOC is not set -# CONFIG_IIO_KX022A_SPI is not set -# CONFIG_IIO_KX022A_I2C is not set -# CONFIG_AD4130 is not set -# CONFIG_MAX11410 is not set -# CONFIG_TI_ADS7924 is not set -# CONFIG_TI_ADS1100 is not set -# CONFIG_TI_LMP92064 is not set -# CONFIG_AD74115 is not set -# CONFIG_MAX5522 is not set -# CONFIG_MCP4728 is not set -# CONFIG_ADF437 is not set -# CONFIG_ROHM_BU27008 is not set -# CONFIG_ROHM_BU27034 is not set -# CONFIG_OVERLAY_FS_DEBUG is not set -# CONFIG_TMPFS_QUOTA is not set -# CONFIG_ADF4377 is not set -# CONFIG_OPT4001 is not set -# CONFIG_TI_TMAG5273 is not set -# CONFIG_X9250 is not set -# CONFIG_MPRLS0025PA is not set -# CONFIG_IRSD200 is not set -# CONFIG_MAX30208 is not set -# CONFIG_XFS_SUPPORT_ASCII_CI is not set -# CONFIG_SQUASHFS_CHOICE_DECOMP_BY_MOUNT is not set -CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI_PERCPU=y -# CONFIG_SQUASHFS_COMPILE_DECOMP_SINGLE is not set -# CONFIG_SQUASHFS_COMPILE_DECOMP_MULTI is not set -# CONFIG_NFSD_V2 is not set -# CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA1 is not set -# CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_CAMELLIA is not set -# CONFIG_RPCSEC_GSS_KRB5_ENCTYPES_AES_SHA2 is not set -# CONFIG_LIST_HARDENED is not set -# CONFIG_CRYPTO_JITTERENTROPY_TESTINTERFACE is not set -# CONFIG_CRYPTO_ARIA_AESNI_AVX2_X86_64 is not set -# CONFIG_CRYPTO_ARIA_GFNI_AVX512_X86_64 is not set -# CONFIG_SWIOTLB_DYNAMIC is not set -CONFIG_DEBUG_INFO_COMPRESSED_NONE=y -# CONFIG_DEBUG_INFO_COMPRESSED_ZLIB is not set -# CONFIG_DEBUG_INFO_COMPRESSED_ZSTD is not set -# CONFIG_PER_VMA_LOCK_STATS is not set -# CONFIG_WQ_CPU_INTENSIVE_REPORT is not set -# CONFIG_NMI_CHECK_CPU is not set -# CONFIG_RCU_CPU_STALL_CPUTIME is not set -# CONFIG_TEST_DHRY is not set -# CONFIG_DEBUG_CGROUP_REF is not set -# CONFIG_USER_EVENTS is not set -# CONFIG_CHARGER_RT9467 is not set -# CONFIG_CHARGER_RT9471 is not set -# CONFIG_XILINX_WINDOW_WATCHDOG is not set -# CONFIG_MFD_MAX5970 is not set -# CONFIG_MFD_TPS65219 is not set -# CONFIG_REGULATOR_AW37503 is not set -# CONFIG_REGULATOR_MAX77857 is not set -# CONFIG_REGULATOR_MAX20411 is not set -# CONFIG_REGULATOR_RAA215300 is not set -# CONFIG_REGULATOR_RT4803 is not set -# CONFIG_REGULATOR_RT5739 is not set -# CONFIG_REGULATOR_RT6190 is not set -# CONFIG_REGULATOR_RTQ2208 is not set -# CONFIG_REGULATOR_TPS6287X is not set -# CONFIG_LEDS_LM3697 is not set -# CONFIG_LEDS_GROUP_MULTICOLOR is not set -# CONFIG_COMMON_CLK_SI521XX is not set -# CONFIG_COMMON_CLK_VC3 is not set -# CONFIG_CDX_BUS is not set -# CONFIG_CRYPTO_SM4_ARM64_CE_CCM is not set -# CONFIG_CRYPTO_SM4_ARM64_CE_GCM is not set -CONFIG_PROBE_EVENTS_BTF_ARGS=y -# CONFIG_ARM64_ERRATUM_3117295 is not set -# CONFIG_MITIGATION_RFDS is not set -# CONFIG_UIMAGE_FIT_BLK is not set -# CONFIG_AIR_EN8811H_PHY is not set -# CONFIG_QCA83XX_PHY is not set -# CONFIG_QCA808X_PHY is not set -# CONFIG_CAN_F81604 is not set -# CONFIG_PCS_MTK_USXGMII is not set -# CONFIG_USB_CDNS3_PCI_WRAP is not set -# CONFIG_USB_CDNSP_PCI is not set -# CONFIG_BLK_NVMEM is not set -# CONFIG_MTD_UBI_NVMEM is not set -# CONFIG_ARCH_MA35 is not set -# CONFIG_ARM64_ERRATUM_2645198 is not set -# CONFIG_ARM64_ERRATUM_2966298 is not set -# CONFIG_ROCKCHIP_ERRATUM_3588001 is not set -# CONFIG_PCI_DYNAMIC_OF_NODES is not set -# CONFIG_MTD_SPLIT_SEIL_FW is not set -# CONFIG_SERIAL_EARLYCON_SEMIHOST is not set -# CONFIG_I2C_HISI is not set -# CONFIG_SPI_SN_F_OSPI is not set -# CONFIG_GPIO_HISI is not set -# CONFIG_CHARGER_QCOM_SMB2 is not set -# CONFIG_MFD_RK8XX_I2C is not set -# CONFIG_MFD_RK8XX_SPI is not set -# CONFIG_QCA807X_PHY is not set -# CONFIG_LEDS_SMARTRG_LED is not set -# CONFIG_PHY_MTK_XFI_TPHY is not set -# CONFIG_BT_NXPUART is not set -# CONFIG_BCMASP is not set -# CONFIG_MFD_RPISENSE_CORE is not set -# CONFIG_MFD_RASPBERRYPI_POE_HAT is not set -# CONFIG_REGULATOR_RASPBERRYPI_TOUCHSCREEN_V2 is not set -# CONFIG_VIDEO_BCM2835_UNICAM is not set -# CONFIG_VIDEO_RASPBERRYPI_PISP_BE is not set -# CONFIG_VIDEO_RP1_CFE is not set -# CONFIG_VIDEO_CAMERA_SENSOR is not set -# CONFIG_VIDEO_BU64754 is not set -# CONFIG_VIDEO_DW9719 is not set -# CONFIG_VIDEO_TC358746 is not set -# CONFIG_VIDEO_DS90UB913 is not set -# CONFIG_VIDEO_DS90UB953 is not set -# CONFIG_VIDEO_DS90UB960 is not set -# CONFIG_DRM_PANEL_HIMAX_HX8394 is not set -# CONFIG_DRM_PANEL_JADARD_JD9365DA_H3 is not set -# CONFIG_DRM_PANEL_MAGNACHIP_D53E6EA8966 is not set -# CONFIG_DRM_PANEL_NEWVISION_NV3051D is not set -# CONFIG_DRM_PANEL_NOVATEK_NT36523 is not set -# CONFIG_DRM_PANEL_SAMSUNG_S6D7AA0 is not set -# CONFIG_DRM_PANEL_SONY_TD4353_JDI is not set -# CONFIG_DRM_PANEL_STARTEK_KD070FHFID015 is not set -# CONFIG_DRM_PANEL_VISIONOX_VTDR6130 is not set -# CONFIG_DRM_PANEL_VISIONOX_R66451 is not set -# CONFIG_DRM_SAMSUNG_DSIM is not set -# CONFIG_DRM_V3D is not set -# CONFIG_DRM_RP1_DSI is not set -# CONFIG_DRM_RP1_DPI is not set -# CONFIG_DRM_RP1_VEC is not set -# CONFIG_FB_RPISENSE is not set -# CONFIG_SND_SEQ_UMP is not set -# CONFIG_SND_PCMTEST is not set -# CONFIG_SND_USB_AUDIO_MIDI_V2 is not set -# CONFIG_SND_SOC_CHV3_I2S is not set -# CONFIG_SND_SOC_AUDIO_IIO_AUX is not set -# CONFIG_SND_SOC_AW88395 is not set -# CONFIG_SND_SOC_AW88261 is not set -# CONFIG_SND_SOC_CHV3_CODEC is not set -# CONFIG_SND_SOC_CS35L56_I2C is not set -# CONFIG_SND_SOC_CS35L56_SPI is not set -# CONFIG_SND_SOC_IDT821034 is not set -# CONFIG_SND_SOC_MAX98090 is not set -# CONFIG_SND_SOC_MAX98388 is not set -# CONFIG_SND_SOC_PEB2466 is not set -# CONFIG_SND_SOC_SMA1303 is not set -# CONFIG_SND_SOC_SSM3515 is not set -# CONFIG_SND_SOC_TAS2781_I2C is not set -# CONFIG_SND_SOC_WM8961 is not set -# CONFIG_IOMMUFD is not set -# CONFIG_PINCTRL_RP1 is not set -# CONFIG_PINCTRL_BCM2712 is not set -# CONFIG_GPIO_BRCMSTB is not set -# CONFIG_MFD_RP1 is not set -# CONFIG_COMMON_CLK_RP1 is not set -# CONFIG_COMMON_CLK_RP1_SDIO is not set -# CONFIG_PWM_RP1 is not set -# CONFIG_BCM2712_MIP is not set -# CONFIG_RESET_BRCMSTB is not set -# CONFIG_PHY_BRCM_USB is not set -# CONFIG_SENSORS_RP1_ADC is not set -# CONFIG_NET_DSA_TAG_NONE is not set -# CONFIG_INTEL_MEI_GSC_PROXY is not set -# CONFIG_NET_DSA_MSCC_OCELOT_EXT is not set -# CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE is not set -CONFIG_SPECTRE_BHI_ON=y -# CONFIG_SPECTRE_BHI_OFF is not set -# CONFIG_SPECTRE_BHI_AUTO is not set -# CONFIG_AIROHA_EN8801SC_PHY is not set -# CONFIG_NF_CONNTRACK_DSCPREMARK_EXT is not set -# CONFIG_REGULATOR_QCOM_REFGEN is not set -# CONFIG_INGENIC_CGU_JZ4755 is not set -CONFIG_SKB_RECYCLER=y -CONFIG_SKB_RECYCLER_MULTI_CPU=y -# CONFIG_MITIGATION_SPECTRE_BHI is not set -CONFIG_DRM_I915_PREEMPT_TIMEOUT_COMPUTE=7500 -# CONFIG_CPUFREQ_DT is not set -# CONFIG_SEL3350_PLATFORM is not set -# CONFIG_NF_CONNTRACK_DSCPREMARK_EXT is not set -# CONFIG_ARM_SMMU_V3_PMU is not set -# CONFIG_ARM_CORESIGHT_PMU_ARCH_SYSTEM_PMU is not set -# CONFIG_ARM_PMUV3 is not set -# CONFIG_CPUFREQ_DT_PLATDEV is not set -# CONFIG_KEYBOARD_MT6779 is not set -# CONFIG_COMMON_CLK_MT8188 is not set -# CONFIG_COMMON_CLK_MEDIATEK_FHCTL is not set -# CONFIG_UACCE is not set -# CONFIG_CPU_MITIGATIONS is not set -# CONFIG_BLOCK_NOTIFIERS is not set -# CONFIG_NVMEM_BLOCK is not set -CONFIG_PCP_BATCH_SCALE_MAX=5 -# CONFIG_CZNIC_PLATFORMS is not set -# CONFIG_AMD_XGBE_DCB is not set -# CONFIG_IXGBE_DCB is not set -# CONFIG_I40E_DCB is not set -# CONFIG_QLCNIC_DCB is not set -# CONFIG_ARM64_ERRATUM_3194386 is not set -# CONFIG_MEMCG_V1 is not set -# CONFIG_BASE_SMALL is not set -# CONFIG_X86_FRED is not set -# CONFIG_KVM_SW_PROTECTED_VM is not set -# CONFIG_KVM_INTEL_PROVE_VE is not set -# CONFIG_KVM_HYPERV is not set -CONFIG_KVM_MAX_NR_VCPUS=1024 -CONFIG_BLK_DEV_WRITE_MOUNTED=y -CONFIG_SLAB_BUCKETS=y -# CONFIG_TCP_AO is not set -# CONFIG_NET_DSA_TAG_VSC73XX_8021Q is not set -# CONFIG_BT_INTEL_PCIE is not set -# CONFIG_ZRAM_TRACK_ENTRY_ACTIME is not set -# CONFIG_NVME_HOST_AUTH is not set -# CONFIG_NSM is not set -# CONFIG_KEBA_CP500 is not set -# CONFIG_DM_VDO is not set -# CONFIG_PFCP is not set -# CONFIG_NETKIT is not set -# CONFIG_IDPF is not set -# CONFIG_OCTEON_EP_VF is not set -# CONFIG_OA_TC6 is not set -# CONFIG_RTASE is not set -# CONFIG_TEHUTI_TN40 is not set -# CONFIG_DP83TG720_PHY is not set -# CONFIG_CAN_ESD_402_PCI is not set -# CONFIG_TOUCHSCREEN_GOODIX_BERLIN_I2C is not set -# CONFIG_TOUCHSCREEN_GOODIX_BERLIN_SPI is not set -# CONFIG_TCG_TPM2_HMAC is not set -# CONFIG_I2C_ZHAOXIN is not set -# CONFIG_SPI_CH341 is not set -# CONFIG_PTP_1588_CLOCK_FC3W is not set -# CONFIG_PINCTRL_INTEL_PLATFORM is not set -# CONFIG_PINCTRL_METEORPOINT is not set -# CONFIG_GPIO_GRANITERAPIDS is not set -# CONFIG_GPIO_SLOPPY_LOGIC_ANALYZER is not set -# CONFIG_GPIO_VIRTUSER is not set -# CONFIG_W1_MASTER_AMD_AXI is not set -# CONFIG_POWER_SEQUENCING is not set -# CONFIG_BATTERY_MAX1720X is not set -# CONFIG_FUEL_GAUGE_MM8013 is not set -# CONFIG_SENSORS_ASUS_ROG_RYUJIN is not set -# CONFIG_SENSORS_CHIPCAP2 is not set -# CONFIG_SENSORS_GIGABYTE_WATERFORCE is not set -# CONFIG_SENSORS_POWERZ is not set -# CONFIG_SENSORS_LENOVO_EC is not set -# CONFIG_SENSORS_LTC2991 is not set -# CONFIG_SENSORS_LTC4282 is not set -# CONFIG_SENSORS_NZXT_KRAKEN3 is not set -# CONFIG_SENSORS_ADP1050 is not set -# CONFIG_SENSORS_LTC4286 is not set -# CONFIG_SENSORS_MP2856 is not set -# CONFIG_SENSORS_MP2891 is not set -# CONFIG_SENSORS_MP2993 is not set -# CONFIG_SENSORS_MP5920 is not set -# CONFIG_SENSORS_MP5990 is not set -# CONFIG_SENSORS_MP9941 is not set -# CONFIG_SENSORS_MPQ8785 is not set -# CONFIG_SENSORS_XDP710 is not set -# CONFIG_SENSORS_PT5161L is not set -# CONFIG_SENSORS_SPD5118 is not set -# CONFIG_THERMAL_DEBUGFS is not set -# CONFIG_LENOVO_SE10_WDT is not set -# CONFIG_MFD_CS40L50_I2C is not set -# CONFIG_MFD_CS40L50_SPI is not set -# CONFIG_DRM_XE is not set -# CONFIG_BACKLIGHT_KTD2801 is not set -# CONFIG_BACKLIGHT_LM3509 is not set -# CONFIG_HID_WINWING is not set -# CONFIG_HID_MCP2200 is not set -CONFIG_USB_PCI_AMD=y -CONFIG_USB_DEFAULT_AUTHORIZATION_MODE=1 -# CONFIG_USB_LJCA is not set -# CONFIG_LEDS_KTD202X is not set -# CONFIG_LEDS_TRIGGER_INPUT_EVENTS is not set -# CONFIG_RTC_DRV_MAX31335 is not set -# CONFIG_RTC_DRV_RX8111 is not set -# CONFIG_VFIO_DEBUGFS is not set -# CONFIG_VIRTIO_VFIO_PCI is not set -# CONFIG_VIRTIO_DEBUG is not set -# CONFIG_AMD_WBRF is not set -# CONFIG_ACPI_QUICKSTART is not set -# CONFIG_MEEGOPAD_ANX7428 is not set -# CONFIG_SILICOM_PLATFORM is not set -# CONFIG_AD7091R8 is not set -# CONFIG_AD7173 is not set -# CONFIG_AD7380 is not set -# CONFIG_AD7944 is not set -# CONFIG_LTC2309 is not set -# CONFIG_MAX34408 is not set -# CONFIG_MCP3564 is not set -# CONFIG_PAC1934 is not set -# CONFIG_TI_ADS1119 is not set -# CONFIG_TI_ADS1298 is not set -# CONFIG_AOSONG_AGS02MA is not set -# CONFIG_ENS160 is not set -# CONFIG_AD9739A is not set -# CONFIG_MCP4821 is not set -# CONFIG_ADMFM2000 is not set -# CONFIG_HDC3020 is not set -# CONFIG_BMI323_I2C is not set -# CONFIG_BMI323_SPI is not set -# CONFIG_APDS9306 is not set -# CONFIG_ISL76682 is not set -# CONFIG_LTR390 is not set -# CONFIG_VEML6040 is not set -# CONFIG_VEML6075 is not set -# CONFIG_ROHM_BM1390 is not set -# CONFIG_HSC030PA is not set -# CONFIG_MLX90635 is not set -# CONFIG_MCP9600 is not set -# CONFIG_LAN966X_OIC is not set -# CONFIG_RESET_GPIO is not set -# CONFIG_DWC_PCIE_PMU is not set -# CONFIG_BCACHEFS_FS is not set -CONFIG_FUSE_PASSTHROUGH=y -# CONFIG_NETFS_DEBUG is not set -# CONFIG_NFSD_LEGACY_CLIENT_TRACKING is not set -# CONFIG_CRYPTO_DEV_QAT_420XX is not set -# CONFIG_LWQ_TEST is not set -# CONFIG_MEM_ALLOC_PROFILING is not set -# CONFIG_TEST_OBJPOOL is not set -# CONFIG_MLX5_DPLL is not set -# CONFIG_NET_VENDOR_META is not set -# CONFIG_LAN865X is not set -# CONFIG_FDMA is not set -# CONFIG_MICROCODE_LATE_LOADING is not set -# CONFIG_X86_USER_SHADOW_STACK is not set -CONFIG_EFI_HANDOVER_PROTOCOL=y -# CONFIG_ARCH_PENSANDO is not set -# CONFIG_COMPRESSED_INSTALL is not set -# CONFIG_NET_AIROHA is not set -# CONFIG_CAN_ROCKCHIP_CANFD is not set -# CONFIG_PINCTRL_AW9523 is not set -# CONFIG_W1_MASTER_UART is not set -# CONFIG_MFD_88PM886_PMIC is not set -# CONFIG_MFD_ROHM_BD96801 is not set -# CONFIG_REGULATOR_NETLINK_EVENTS is not set -# CONFIG_REGULATOR_MAX77503 is not set -# CONFIG_USB_ONBOARD_DEV is not set -# CONFIG_LEDS_LP5569 is not set -# CONFIG_LEDS_NCP5623 is not set -# CONFIG_AF8133J is not set -# CONFIG_PWM_GPIO is not set -# CONFIG_PHY_MTK_MIPI_CSI_0_5 is not set -# CONFIG_TEST_FPU is not set -# CONFIG_BT_HCIUART_AML is not set -CONFIG_DMA_SHARED_BUFFER=y -CONFIG_TEE=y -# CONFIG_INPUT_RK805_PWRKEY is not set -# CONFIG_OPTEE is not set diff --git a/6.11/target/linux/generic/hack-6.11/204-module_strip.patch b/6.11/target/linux/generic/hack-6.11/204-module_strip.patch deleted file mode 100644 index 8619c290..00000000 --- a/6.11/target/linux/generic/hack-6.11/204-module_strip.patch +++ /dev/null @@ -1,210 +0,0 @@ -From a779a482fb9b9f8fcdf8b2519c789b4b9bb5dd05 Mon Sep 17 00:00:00 2001 -From: Felix Fietkau -Date: Fri, 7 Jul 2017 16:56:48 +0200 -Subject: build: add a hack for removing non-essential module info - -Signed-off-by: Felix Fietkau ---- - include/linux/module.h | 13 ++++++++----- - include/linux/moduleparam.h | 15 ++++++++++++--- - init/Kconfig | 7 +++++++ - kernel/module.c | 5 ++++- - scripts/mod/modpost.c | 12 ++++++++++++ - 5 files changed, 43 insertions(+), 9 deletions(-) - ---- a/include/linux/module.h -+++ b/include/linux/module.h -@@ -164,6 +164,7 @@ extern void cleanup_module(void); - - /* Generic info of form tag = "info" */ - #define MODULE_INFO(tag, info) __MODULE_INFO(tag, tag, info) -+#define MODULE_INFO_STRIP(tag, info) __MODULE_INFO_STRIP(tag, tag, info) - - /* For userspace: you can also call me... */ - #define MODULE_ALIAS(_alias) MODULE_INFO(alias, _alias) -@@ -233,12 +234,12 @@ extern void cleanup_module(void); - * Author(s), use "Name " or just "Name", for multiple - * authors use multiple MODULE_AUTHOR() statements/lines. - */ --#define MODULE_AUTHOR(_author) MODULE_INFO(author, _author) -+#define MODULE_AUTHOR(_author) MODULE_INFO_STRIP(author, _author) - - /* What your module does. */ --#define MODULE_DESCRIPTION(_description) MODULE_INFO(description, _description) -+#define MODULE_DESCRIPTION(_description) MODULE_INFO_STRIP(description, _description) - --#ifdef MODULE -+#if defined(MODULE) && !defined(CONFIG_MODULE_STRIPPED) - /* Creates an alias so file2alias.c can find device table. */ - #define MODULE_DEVICE_TABLE(type, name) \ - extern typeof(name) __mod_##type##__##name##_device_table \ -@@ -265,7 +266,9 @@ extern typeof(name) __mod_##type##__##na - */ - - #if defined(MODULE) || !defined(CONFIG_SYSFS) --#define MODULE_VERSION(_version) MODULE_INFO(version, _version) -+#define MODULE_VERSION(_version) MODULE_INFO_STRIP(version, _version) -+#elif defined(CONFIG_MODULE_STRIPPED) -+#define MODULE_VERSION(_version) __MODULE_INFO_DISABLED(version) - #else - #define MODULE_VERSION(_version) \ - MODULE_INFO(version, _version); \ -@@ -288,7 +291,7 @@ extern typeof(name) __mod_##type##__##na - /* Optional firmware file (or files) needed by the module - * format is simply firmware file name. Multiple firmware - * files require multiple MODULE_FIRMWARE() specifiers */ --#define MODULE_FIRMWARE(_firmware) MODULE_INFO(firmware, _firmware) -+#define MODULE_FIRMWARE(_firmware) MODULE_INFO_STRIP(firmware, _firmware) - - #define MODULE_IMPORT_NS(ns) MODULE_INFO(import_ns, __stringify(ns)) - ---- a/include/linux/moduleparam.h -+++ b/include/linux/moduleparam.h -@@ -20,6 +20,16 @@ - /* Chosen so that structs with an unsigned long line up. */ - #define MAX_PARAM_PREFIX_LEN (64 - sizeof(unsigned long)) - -+/* This struct is here for syntactic coherency, it is not used */ -+#define __MODULE_INFO_DISABLED(name) \ -+ struct __UNIQUE_ID(name) {} -+ -+#ifdef CONFIG_MODULE_STRIPPED -+#define __MODULE_INFO_STRIP(tag, name, info) __MODULE_INFO_DISABLED(name) -+#else -+#define __MODULE_INFO_STRIP(tag, name, info) __MODULE_INFO(tag, name, info) -+#endif -+ - #define __MODULE_INFO(tag, name, info) \ - static const char __UNIQUE_ID(name)[] \ - __used __section(".modinfo") __aligned(1) \ -@@ -31,7 +41,7 @@ - /* One for each parameter, describing how to use it. Some files do - multiple of these per line, so can't just use MODULE_INFO. */ - #define MODULE_PARM_DESC(_parm, desc) \ -- __MODULE_INFO(parm, _parm, #_parm ":" desc) -+ __MODULE_INFO_STRIP(parm, _parm, #_parm ":" desc) - - struct kernel_param; - ---- a/kernel/module/Kconfig -+++ b/kernel/module/Kconfig -@@ -389,4 +389,11 @@ config MODULES_TREE_LOOKUP - def_bool y - depends on PERF_EVENTS || TRACING || CFI_CLANG - -+config MODULE_STRIPPED -+ bool "Reduce module size" -+ depends on MODULES -+ help -+ Remove module parameter descriptions, author info, version, aliases, -+ device tables, etc. -+ - endif # MODULES ---- a/kernel/module/main.c -+++ b/kernel/module/main.c -@@ -997,6 +997,7 @@ size_t modinfo_attrs_count = ARRAY_SIZE( - - static const char vermagic[] = VERMAGIC_STRING; - -+#if defined(CONFIG_MODVERSIONS) || !defined(CONFIG_MODULE_STRIPPED) - int try_to_force_load(struct module *mod, const char *reason) - { - #ifdef CONFIG_MODULE_FORCE_LOAD -@@ -1008,6 +1009,7 @@ int try_to_force_load(struct module *mod - return -ENOEXEC; - #endif - } -+#endif - - /* Parse tag=value strings from .modinfo section */ - char *module_next_tag_pair(char *string, unsigned long *secsize) -@@ -2075,9 +2077,11 @@ static void module_augment_kernel_taints - - static int check_modinfo(struct module *mod, struct load_info *info, int flags) - { -- const char *modmagic = get_modinfo(info, "vermagic"); - int err; - -+#ifndef CONFIG_MODULE_STRIPPED -+ const char *modmagic = get_modinfo(info, "vermagic"); -+ - if (flags & MODULE_INIT_IGNORE_VERMAGIC) - modmagic = NULL; - -@@ -2091,6 +2095,7 @@ static int check_modinfo(struct module * - info->name, modmagic, vermagic); - return -ENOEXEC; - } -+#endif - - err = check_modinfo_livepatch(mod, info); - if (err) ---- a/scripts/mod/modpost.c -+++ b/scripts/mod/modpost.c -@@ -1692,7 +1692,9 @@ static void read_symbols(const char *mod - symname = remove_dot(info.strtab + sym->st_name); - - handle_symbol(mod, &info, sym, symname); -+#ifndef CONFIG_MODULE_STRIPPED - handle_moddevtable(mod, &info, sym, symname); -+#endif - } - - check_sec_ref(mod, &info); -@@ -1865,8 +1867,10 @@ static void add_header(struct buffer *b, - buf_printf(b, "BUILD_SALT;\n"); - buf_printf(b, "BUILD_LTO_INFO;\n"); - buf_printf(b, "\n"); -+#ifndef CONFIG_MODULE_STRIPPED - buf_printf(b, "MODULE_INFO(vermagic, VERMAGIC_STRING);\n"); - buf_printf(b, "MODULE_INFO(name, KBUILD_MODNAME);\n"); -+#endif - buf_printf(b, "\n"); - buf_printf(b, "__visible struct module __this_module\n"); - buf_printf(b, "__section(\".gnu.linkonce.this_module\") = {\n"); -@@ -1880,8 +1884,10 @@ static void add_header(struct buffer *b, - buf_printf(b, "\t.arch = MODULE_ARCH_INIT,\n"); - buf_printf(b, "};\n"); - -+#ifndef CONFIG_MODULE_STRIPPED - if (!external_module) - buf_printf(b, "\nMODULE_INFO(intree, \"Y\");\n"); -+#endif - - buf_printf(b, - "\n" -@@ -1889,8 +1895,10 @@ static void add_header(struct buffer *b, - "MODULE_INFO(retpoline, \"Y\");\n" - "#endif\n"); - -+#ifndef CONFIG_MODULE_STRIPPED - if (strstarts(mod->name, "drivers/staging")) - buf_printf(b, "\nMODULE_INFO(staging, \"Y\");\n"); -+#endif - - if (strstarts(mod->name, "tools/testing")) - buf_printf(b, "\nMODULE_INFO(test, \"Y\");\n"); -@@ -2000,11 +2008,13 @@ static void add_depends(struct buffer *b - - static void add_srcversion(struct buffer *b, struct module *mod) - { -+#ifndef CONFIG_MODULE_STRIPPED - if (mod->srcversion[0]) { - buf_printf(b, "\n"); - buf_printf(b, "MODULE_INFO(srcversion, \"%s\");\n", - mod->srcversion); - } -+#endif - } - - static void write_buf(struct buffer *b, const char *fname) -@@ -2087,7 +2097,9 @@ static void write_mod_c_file(struct modu - add_exported_symbols(&buf, mod); - add_versions(&buf, mod); - add_depends(&buf, mod); -+#ifndef CONFIG_MODULE_STRIPPED - add_moddevtable(&buf, mod); -+#endif - add_srcversion(&buf, mod); - - ret = snprintf(fname, sizeof(fname), "%s.mod.c", mod->name); diff --git a/6.11/target/linux/generic/hack-6.11/205-kconfig-abort-configuration-on-unset-symbol.patch b/6.11/target/linux/generic/hack-6.11/205-kconfig-abort-configuration-on-unset-symbol.patch deleted file mode 100644 index df185070..00000000 --- a/6.11/target/linux/generic/hack-6.11/205-kconfig-abort-configuration-on-unset-symbol.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 310e8e04a05d9eb43fa9dd7f00143300afcaa37a Mon Sep 17 00:00:00 2001 -From: David Bauer -Date: Fri, 11 Nov 2022 13:33:44 +0100 -Subject: [PATCH] kconfig: abort configuration on unset symbol - -When a target configuration has unset Kconfig symbols, the build will -fail when OpenWrt is compiled with V=s and stdin is connected to a tty. - -In case OpenWrt is compiled without either of these preconditions, the -build will succeed with the symbols in question being unset. - -Modify the kernel configuration in a way it fails on unset symbols -regardless of the aforementioned preconditions. - -Signed-off-by: David Bauer ---- - scripts/kconfig/conf.c | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- a/scripts/kconfig/conf.c -+++ b/scripts/kconfig/conf.c -@@ -338,6 +338,9 @@ static int conf_askvalue(struct symbol * - } - /* fall through */ - default: -+ if (!tty_stdio && getenv("FAIL_ON_UNCONFIGURED")) { -+ exit(1); -+ } - fflush(stdout); - xfgets(line, sizeof(line), stdin); - break; -@@ -520,6 +523,9 @@ static int conf_choice(struct menu *menu - } - /* fall through */ - case oldaskconfig: -+ if (!tty_stdio && getenv("FAIL_ON_UNCONFIGURED")) { -+ exit(1); -+ } - fflush(stdout); - xfgets(line, sizeof(line), stdin); - strip(line); diff --git a/6.11/target/linux/generic/hack-6.11/210-darwin_scripts_include.patch b/6.11/target/linux/generic/hack-6.11/210-darwin_scripts_include.patch deleted file mode 100644 index b94554ff..00000000 --- a/6.11/target/linux/generic/hack-6.11/210-darwin_scripts_include.patch +++ /dev/null @@ -1,3053 +0,0 @@ -From db7c30dcd9a0391bf13b62c9f91e144d762ef43a Mon Sep 17 00:00:00 2001 -From: Florian Fainelli -Date: Fri, 7 Jul 2017 17:00:49 +0200 -Subject: Add an OSX specific patch to make the kernel be compiled - -lede-commit: 3fc2a24f0422b2f55f9ed43f116db3111f700526 -Signed-off-by: Florian Fainelli ---- - scripts/kconfig/Makefile | 3 + - scripts/mod/elf.h | 3007 ++++++++++++++++++++++++++++++++++++++++++++ - scripts/mod/mk_elfconfig.c | 4 + - scripts/mod/modpost.h | 4 + - 4 files changed, 3018 insertions(+) - create mode 100644 scripts/mod/elf.h - ---- /dev/null -+++ b/scripts/mod/elf.h -@@ -0,0 +1,3007 @@ -+/* This file defines standard ELF types, structures, and macros. -+ Copyright (C) 1995-2012 Free Software Foundation, Inc. -+ This file is part of the GNU C Library. -+ -+ The GNU C Library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Lesser General Public -+ License as published by the Free Software Foundation; either -+ version 2.1 of the License, or (at your option) any later version. -+ -+ The GNU C Library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Lesser General Public License for more details. -+ -+ You should have received a copy of the GNU Lesser General Public -+ License along with the GNU C Library; if not, see -+ . */ -+ -+#ifndef _ELF_H -+#define _ELF_H 1 -+ -+/* Standard ELF types. */ -+ -+#include -+ -+/* Type for a 16-bit quantity. */ -+typedef uint16_t Elf32_Half; -+typedef uint16_t Elf64_Half; -+ -+/* Types for signed and unsigned 32-bit quantities. */ -+typedef uint32_t Elf32_Word; -+typedef int32_t Elf32_Sword; -+typedef uint32_t Elf64_Word; -+typedef int32_t Elf64_Sword; -+ -+/* Types for signed and unsigned 64-bit quantities. */ -+typedef uint64_t Elf32_Xword; -+typedef int64_t Elf32_Sxword; -+typedef uint64_t Elf64_Xword; -+typedef int64_t Elf64_Sxword; -+ -+/* Type of addresses. */ -+typedef uint32_t Elf32_Addr; -+typedef uint64_t Elf64_Addr; -+ -+/* Type of file offsets. */ -+typedef uint32_t Elf32_Off; -+typedef uint64_t Elf64_Off; -+ -+/* Type for section indices, which are 16-bit quantities. */ -+typedef uint16_t Elf32_Section; -+typedef uint16_t Elf64_Section; -+ -+/* Type for version symbol information. */ -+typedef Elf32_Half Elf32_Versym; -+typedef Elf64_Half Elf64_Versym; -+ -+ -+/* The ELF file header. This appears at the start of every ELF file. */ -+ -+#define EI_NIDENT (16) -+ -+typedef struct -+{ -+ unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */ -+ Elf32_Half e_type; /* Object file type */ -+ Elf32_Half e_machine; /* Architecture */ -+ Elf32_Word e_version; /* Object file version */ -+ Elf32_Addr e_entry; /* Entry point virtual address */ -+ Elf32_Off e_phoff; /* Program header table file offset */ -+ Elf32_Off e_shoff; /* Section header table file offset */ -+ Elf32_Word e_flags; /* Processor-specific flags */ -+ Elf32_Half e_ehsize; /* ELF header size in bytes */ -+ Elf32_Half e_phentsize; /* Program header table entry size */ -+ Elf32_Half e_phnum; /* Program header table entry count */ -+ Elf32_Half e_shentsize; /* Section header table entry size */ -+ Elf32_Half e_shnum; /* Section header table entry count */ -+ Elf32_Half e_shstrndx; /* Section header string table index */ -+} Elf32_Ehdr; -+ -+typedef struct -+{ -+ unsigned char e_ident[EI_NIDENT]; /* Magic number and other info */ -+ Elf64_Half e_type; /* Object file type */ -+ Elf64_Half e_machine; /* Architecture */ -+ Elf64_Word e_version; /* Object file version */ -+ Elf64_Addr e_entry; /* Entry point virtual address */ -+ Elf64_Off e_phoff; /* Program header table file offset */ -+ Elf64_Off e_shoff; /* Section header table file offset */ -+ Elf64_Word e_flags; /* Processor-specific flags */ -+ Elf64_Half e_ehsize; /* ELF header size in bytes */ -+ Elf64_Half e_phentsize; /* Program header table entry size */ -+ Elf64_Half e_phnum; /* Program header table entry count */ -+ Elf64_Half e_shentsize; /* Section header table entry size */ -+ Elf64_Half e_shnum; /* Section header table entry count */ -+ Elf64_Half e_shstrndx; /* Section header string table index */ -+} Elf64_Ehdr; -+ -+/* Fields in the e_ident array. The EI_* macros are indices into the -+ array. The macros under each EI_* macro are the values the byte -+ may have. */ -+ -+#define EI_MAG0 0 /* File identification byte 0 index */ -+#define ELFMAG0 0x7f /* Magic number byte 0 */ -+ -+#define EI_MAG1 1 /* File identification byte 1 index */ -+#define ELFMAG1 'E' /* Magic number byte 1 */ -+ -+#define EI_MAG2 2 /* File identification byte 2 index */ -+#define ELFMAG2 'L' /* Magic number byte 2 */ -+ -+#define EI_MAG3 3 /* File identification byte 3 index */ -+#define ELFMAG3 'F' /* Magic number byte 3 */ -+ -+/* Conglomeration of the identification bytes, for easy testing as a word. */ -+#define ELFMAG "\177ELF" -+#define SELFMAG 4 -+ -+#define EI_CLASS 4 /* File class byte index */ -+#define ELFCLASSNONE 0 /* Invalid class */ -+#define ELFCLASS32 1 /* 32-bit objects */ -+#define ELFCLASS64 2 /* 64-bit objects */ -+#define ELFCLASSNUM 3 -+ -+#define EI_DATA 5 /* Data encoding byte index */ -+#define ELFDATANONE 0 /* Invalid data encoding */ -+#define ELFDATA2LSB 1 /* 2's complement, little endian */ -+#define ELFDATA2MSB 2 /* 2's complement, big endian */ -+#define ELFDATANUM 3 -+ -+#define EI_VERSION 6 /* File version byte index */ -+ /* Value must be EV_CURRENT */ -+ -+#define EI_OSABI 7 /* OS ABI identification */ -+#define ELFOSABI_NONE 0 /* UNIX System V ABI */ -+#define ELFOSABI_SYSV 0 /* Alias. */ -+#define ELFOSABI_HPUX 1 /* HP-UX */ -+#define ELFOSABI_NETBSD 2 /* NetBSD. */ -+#define ELFOSABI_GNU 3 /* Object uses GNU ELF extensions. */ -+#define ELFOSABI_LINUX ELFOSABI_GNU /* Compatibility alias. */ -+#define ELFOSABI_SOLARIS 6 /* Sun Solaris. */ -+#define ELFOSABI_AIX 7 /* IBM AIX. */ -+#define ELFOSABI_IRIX 8 /* SGI Irix. */ -+#define ELFOSABI_FREEBSD 9 /* FreeBSD. */ -+#define ELFOSABI_TRU64 10 /* Compaq TRU64 UNIX. */ -+#define ELFOSABI_MODESTO 11 /* Novell Modesto. */ -+#define ELFOSABI_OPENBSD 12 /* OpenBSD. */ -+#define ELFOSABI_ARM_AEABI 64 /* ARM EABI */ -+#define ELFOSABI_ARM 97 /* ARM */ -+#define ELFOSABI_STANDALONE 255 /* Standalone (embedded) application */ -+ -+#define EI_ABIVERSION 8 /* ABI version */ -+ -+#define EI_PAD 9 /* Byte index of padding bytes */ -+ -+/* Legal values for e_type (object file type). */ -+ -+#define ET_NONE 0 /* No file type */ -+#define ET_REL 1 /* Relocatable file */ -+#define ET_EXEC 2 /* Executable file */ -+#define ET_DYN 3 /* Shared object file */ -+#define ET_CORE 4 /* Core file */ -+#define ET_NUM 5 /* Number of defined types */ -+#define ET_LOOS 0xfe00 /* OS-specific range start */ -+#define ET_HIOS 0xfeff /* OS-specific range end */ -+#define ET_LOPROC 0xff00 /* Processor-specific range start */ -+#define ET_HIPROC 0xffff /* Processor-specific range end */ -+ -+/* Legal values for e_machine (architecture). */ -+ -+#define EM_NONE 0 /* No machine */ -+#define EM_M32 1 /* AT&T WE 32100 */ -+#define EM_SPARC 2 /* SUN SPARC */ -+#define EM_386 3 /* Intel 80386 */ -+#define EM_68K 4 /* Motorola m68k family */ -+#define EM_88K 5 /* Motorola m88k family */ -+#define EM_860 7 /* Intel 80860 */ -+#define EM_MIPS 8 /* MIPS R3000 big-endian */ -+#define EM_S370 9 /* IBM System/370 */ -+#define EM_MIPS_RS3_LE 10 /* MIPS R3000 little-endian */ -+ -+#define EM_PARISC 15 /* HPPA */ -+#define EM_VPP500 17 /* Fujitsu VPP500 */ -+#define EM_SPARC32PLUS 18 /* Sun's "v8plus" */ -+#define EM_960 19 /* Intel 80960 */ -+#define EM_PPC 20 /* PowerPC */ -+#define EM_PPC64 21 /* PowerPC 64-bit */ -+#define EM_S390 22 /* IBM S390 */ -+ -+#define EM_V800 36 /* NEC V800 series */ -+#define EM_FR20 37 /* Fujitsu FR20 */ -+#define EM_RH32 38 /* TRW RH-32 */ -+#define EM_RCE 39 /* Motorola RCE */ -+#define EM_ARM 40 /* ARM */ -+#define EM_FAKE_ALPHA 41 /* Digital Alpha */ -+#define EM_SH 42 /* Hitachi SH */ -+#define EM_SPARCV9 43 /* SPARC v9 64-bit */ -+#define EM_TRICORE 44 /* Siemens Tricore */ -+#define EM_ARC 45 /* Argonaut RISC Core */ -+#define EM_H8_300 46 /* Hitachi H8/300 */ -+#define EM_H8_300H 47 /* Hitachi H8/300H */ -+#define EM_H8S 48 /* Hitachi H8S */ -+#define EM_H8_500 49 /* Hitachi H8/500 */ -+#define EM_IA_64 50 /* Intel Merced */ -+#define EM_MIPS_X 51 /* Stanford MIPS-X */ -+#define EM_COLDFIRE 52 /* Motorola Coldfire */ -+#define EM_68HC12 53 /* Motorola M68HC12 */ -+#define EM_MMA 54 /* Fujitsu MMA Multimedia Accelerator*/ -+#define EM_PCP 55 /* Siemens PCP */ -+#define EM_NCPU 56 /* Sony nCPU embeeded RISC */ -+#define EM_NDR1 57 /* Denso NDR1 microprocessor */ -+#define EM_STARCORE 58 /* Motorola Start*Core processor */ -+#define EM_ME16 59 /* Toyota ME16 processor */ -+#define EM_ST100 60 /* STMicroelectronic ST100 processor */ -+#define EM_TINYJ 61 /* Advanced Logic Corp. Tinyj emb.fam*/ -+#define EM_X86_64 62 /* AMD x86-64 architecture */ -+#define EM_PDSP 63 /* Sony DSP Processor */ -+ -+#define EM_FX66 66 /* Siemens FX66 microcontroller */ -+#define EM_ST9PLUS 67 /* STMicroelectronics ST9+ 8/16 mc */ -+#define EM_ST7 68 /* STmicroelectronics ST7 8 bit mc */ -+#define EM_68HC16 69 /* Motorola MC68HC16 microcontroller */ -+#define EM_68HC11 70 /* Motorola MC68HC11 microcontroller */ -+#define EM_68HC08 71 /* Motorola MC68HC08 microcontroller */ -+#define EM_68HC05 72 /* Motorola MC68HC05 microcontroller */ -+#define EM_SVX 73 /* Silicon Graphics SVx */ -+#define EM_ST19 74 /* STMicroelectronics ST19 8 bit mc */ -+#define EM_VAX 75 /* Digital VAX */ -+#define EM_CRIS 76 /* Axis Communications 32-bit embedded processor */ -+#define EM_JAVELIN 77 /* Infineon Technologies 32-bit embedded processor */ -+#define EM_FIREPATH 78 /* Element 14 64-bit DSP Processor */ -+#define EM_ZSP 79 /* LSI Logic 16-bit DSP Processor */ -+#define EM_MMIX 80 /* Donald Knuth's educational 64-bit processor */ -+#define EM_HUANY 81 /* Harvard University machine-independent object files */ -+#define EM_PRISM 82 /* SiTera Prism */ -+#define EM_AVR 83 /* Atmel AVR 8-bit microcontroller */ -+#define EM_FR30 84 /* Fujitsu FR30 */ -+#define EM_D10V 85 /* Mitsubishi D10V */ -+#define EM_D30V 86 /* Mitsubishi D30V */ -+#define EM_V850 87 /* NEC v850 */ -+#define EM_M32R 88 /* Mitsubishi M32R */ -+#define EM_MN10300 89 /* Matsushita MN10300 */ -+#define EM_MN10200 90 /* Matsushita MN10200 */ -+#define EM_PJ 91 /* picoJava */ -+#define EM_OPENRISC 92 /* OpenRISC 32-bit embedded processor */ -+#define EM_ARC_A5 93 /* ARC Cores Tangent-A5 */ -+#define EM_XTENSA 94 /* Tensilica Xtensa Architecture */ -+#define EM_TILEPRO 188 /* Tilera TILEPro */ -+#define EM_TILEGX 191 /* Tilera TILE-Gx */ -+#define EM_NUM 192 -+ -+/* If it is necessary to assign new unofficial EM_* values, please -+ pick large random numbers (0x8523, 0xa7f2, etc.) to minimize the -+ chances of collision with official or non-GNU unofficial values. */ -+ -+#define EM_ALPHA 0x9026 -+ -+/* Legal values for e_version (version). */ -+ -+#define EV_NONE 0 /* Invalid ELF version */ -+#define EV_CURRENT 1 /* Current version */ -+#define EV_NUM 2 -+ -+/* Section header. */ -+ -+typedef struct -+{ -+ Elf32_Word sh_name; /* Section name (string tbl index) */ -+ Elf32_Word sh_type; /* Section type */ -+ Elf32_Word sh_flags; /* Section flags */ -+ Elf32_Addr sh_addr; /* Section virtual addr at execution */ -+ Elf32_Off sh_offset; /* Section file offset */ -+ Elf32_Word sh_size; /* Section size in bytes */ -+ Elf32_Word sh_link; /* Link to another section */ -+ Elf32_Word sh_info; /* Additional section information */ -+ Elf32_Word sh_addralign; /* Section alignment */ -+ Elf32_Word sh_entsize; /* Entry size if section holds table */ -+} Elf32_Shdr; -+ -+typedef struct -+{ -+ Elf64_Word sh_name; /* Section name (string tbl index) */ -+ Elf64_Word sh_type; /* Section type */ -+ Elf64_Xword sh_flags; /* Section flags */ -+ Elf64_Addr sh_addr; /* Section virtual addr at execution */ -+ Elf64_Off sh_offset; /* Section file offset */ -+ Elf64_Xword sh_size; /* Section size in bytes */ -+ Elf64_Word sh_link; /* Link to another section */ -+ Elf64_Word sh_info; /* Additional section information */ -+ Elf64_Xword sh_addralign; /* Section alignment */ -+ Elf64_Xword sh_entsize; /* Entry size if section holds table */ -+} Elf64_Shdr; -+ -+/* Special section indices. */ -+ -+#define SHN_UNDEF 0 /* Undefined section */ -+#define SHN_LORESERVE 0xff00 /* Start of reserved indices */ -+#define SHN_LOPROC 0xff00 /* Start of processor-specific */ -+#define SHN_BEFORE 0xff00 /* Order section before all others -+ (Solaris). */ -+#define SHN_AFTER 0xff01 /* Order section after all others -+ (Solaris). */ -+#define SHN_HIPROC 0xff1f /* End of processor-specific */ -+#define SHN_LOOS 0xff20 /* Start of OS-specific */ -+#define SHN_HIOS 0xff3f /* End of OS-specific */ -+#define SHN_ABS 0xfff1 /* Associated symbol is absolute */ -+#define SHN_COMMON 0xfff2 /* Associated symbol is common */ -+#define SHN_XINDEX 0xffff /* Index is in extra table. */ -+#define SHN_HIRESERVE 0xffff /* End of reserved indices */ -+ -+/* Legal values for sh_type (section type). */ -+ -+#define SHT_NULL 0 /* Section header table entry unused */ -+#define SHT_PROGBITS 1 /* Program data */ -+#define SHT_SYMTAB 2 /* Symbol table */ -+#define SHT_STRTAB 3 /* String table */ -+#define SHT_RELA 4 /* Relocation entries with addends */ -+#define SHT_HASH 5 /* Symbol hash table */ -+#define SHT_DYNAMIC 6 /* Dynamic linking information */ -+#define SHT_NOTE 7 /* Notes */ -+#define SHT_NOBITS 8 /* Program space with no data (bss) */ -+#define SHT_REL 9 /* Relocation entries, no addends */ -+#define SHT_SHLIB 10 /* Reserved */ -+#define SHT_DYNSYM 11 /* Dynamic linker symbol table */ -+#define SHT_INIT_ARRAY 14 /* Array of constructors */ -+#define SHT_FINI_ARRAY 15 /* Array of destructors */ -+#define SHT_PREINIT_ARRAY 16 /* Array of pre-constructors */ -+#define SHT_GROUP 17 /* Section group */ -+#define SHT_SYMTAB_SHNDX 18 /* Extended section indeces */ -+#define SHT_NUM 19 /* Number of defined types. */ -+#define SHT_LOOS 0x60000000 /* Start OS-specific. */ -+#define SHT_GNU_ATTRIBUTES 0x6ffffff5 /* Object attributes. */ -+#define SHT_GNU_HASH 0x6ffffff6 /* GNU-style hash table. */ -+#define SHT_GNU_LIBLIST 0x6ffffff7 /* Prelink library list */ -+#define SHT_CHECKSUM 0x6ffffff8 /* Checksum for DSO content. */ -+#define SHT_LOSUNW 0x6ffffffa /* Sun-specific low bound. */ -+#define SHT_SUNW_move 0x6ffffffa -+#define SHT_SUNW_COMDAT 0x6ffffffb -+#define SHT_SUNW_syminfo 0x6ffffffc -+#define SHT_GNU_verdef 0x6ffffffd /* Version definition section. */ -+#define SHT_GNU_verneed 0x6ffffffe /* Version needs section. */ -+#define SHT_GNU_versym 0x6fffffff /* Version symbol table. */ -+#define SHT_HISUNW 0x6fffffff /* Sun-specific high bound. */ -+#define SHT_HIOS 0x6fffffff /* End OS-specific type */ -+#define SHT_LOPROC 0x70000000 /* Start of processor-specific */ -+#define SHT_HIPROC 0x7fffffff /* End of processor-specific */ -+#define SHT_LOUSER 0x80000000 /* Start of application-specific */ -+#define SHT_HIUSER 0x8fffffff /* End of application-specific */ -+ -+/* Legal values for sh_flags (section flags). */ -+ -+#define SHF_WRITE (1 << 0) /* Writable */ -+#define SHF_ALLOC (1 << 1) /* Occupies memory during execution */ -+#define SHF_EXECINSTR (1 << 2) /* Executable */ -+#define SHF_MERGE (1 << 4) /* Might be merged */ -+#define SHF_STRINGS (1 << 5) /* Contains nul-terminated strings */ -+#define SHF_INFO_LINK (1 << 6) /* `sh_info' contains SHT index */ -+#define SHF_LINK_ORDER (1 << 7) /* Preserve order after combining */ -+#define SHF_OS_NONCONFORMING (1 << 8) /* Non-standard OS specific handling -+ required */ -+#define SHF_GROUP (1 << 9) /* Section is member of a group. */ -+#define SHF_TLS (1 << 10) /* Section hold thread-local data. */ -+#define SHF_MASKOS 0x0ff00000 /* OS-specific. */ -+#define SHF_MASKPROC 0xf0000000 /* Processor-specific */ -+#define SHF_ORDERED (1 << 30) /* Special ordering requirement -+ (Solaris). */ -+#define SHF_EXCLUDE (1 << 31) /* Section is excluded unless -+ referenced or allocated (Solaris).*/ -+ -+/* Section group handling. */ -+#define GRP_COMDAT 0x1 /* Mark group as COMDAT. */ -+ -+/* Symbol table entry. */ -+ -+typedef struct -+{ -+ Elf32_Word st_name; /* Symbol name (string tbl index) */ -+ Elf32_Addr st_value; /* Symbol value */ -+ Elf32_Word st_size; /* Symbol size */ -+ unsigned char st_info; /* Symbol type and binding */ -+ unsigned char st_other; /* Symbol visibility */ -+ Elf32_Section st_shndx; /* Section index */ -+} Elf32_Sym; -+ -+typedef struct -+{ -+ Elf64_Word st_name; /* Symbol name (string tbl index) */ -+ unsigned char st_info; /* Symbol type and binding */ -+ unsigned char st_other; /* Symbol visibility */ -+ Elf64_Section st_shndx; /* Section index */ -+ Elf64_Addr st_value; /* Symbol value */ -+ Elf64_Xword st_size; /* Symbol size */ -+} Elf64_Sym; -+ -+/* The syminfo section if available contains additional information about -+ every dynamic symbol. */ -+ -+typedef struct -+{ -+ Elf32_Half si_boundto; /* Direct bindings, symbol bound to */ -+ Elf32_Half si_flags; /* Per symbol flags */ -+} Elf32_Syminfo; -+ -+typedef struct -+{ -+ Elf64_Half si_boundto; /* Direct bindings, symbol bound to */ -+ Elf64_Half si_flags; /* Per symbol flags */ -+} Elf64_Syminfo; -+ -+/* Possible values for si_boundto. */ -+#define SYMINFO_BT_SELF 0xffff /* Symbol bound to self */ -+#define SYMINFO_BT_PARENT 0xfffe /* Symbol bound to parent */ -+#define SYMINFO_BT_LOWRESERVE 0xff00 /* Beginning of reserved entries */ -+ -+/* Possible bitmasks for si_flags. */ -+#define SYMINFO_FLG_DIRECT 0x0001 /* Direct bound symbol */ -+#define SYMINFO_FLG_PASSTHRU 0x0002 /* Pass-thru symbol for translator */ -+#define SYMINFO_FLG_COPY 0x0004 /* Symbol is a copy-reloc */ -+#define SYMINFO_FLG_LAZYLOAD 0x0008 /* Symbol bound to object to be lazy -+ loaded */ -+/* Syminfo version values. */ -+#define SYMINFO_NONE 0 -+#define SYMINFO_CURRENT 1 -+#define SYMINFO_NUM 2 -+ -+ -+/* How to extract and insert information held in the st_info field. */ -+ -+#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4) -+#define ELF32_ST_TYPE(val) ((val) & 0xf) -+#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf)) -+ -+/* Both Elf32_Sym and Elf64_Sym use the same one-byte st_info field. */ -+#define ELF64_ST_BIND(val) ELF32_ST_BIND (val) -+#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val) -+#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type)) -+ -+/* Legal values for ST_BIND subfield of st_info (symbol binding). */ -+ -+#define STB_LOCAL 0 /* Local symbol */ -+#define STB_GLOBAL 1 /* Global symbol */ -+#define STB_WEAK 2 /* Weak symbol */ -+#define STB_NUM 3 /* Number of defined types. */ -+#define STB_LOOS 10 /* Start of OS-specific */ -+#define STB_GNU_UNIQUE 10 /* Unique symbol. */ -+#define STB_HIOS 12 /* End of OS-specific */ -+#define STB_LOPROC 13 /* Start of processor-specific */ -+#define STB_HIPROC 15 /* End of processor-specific */ -+ -+/* Legal values for ST_TYPE subfield of st_info (symbol type). */ -+ -+#define STT_NOTYPE 0 /* Symbol type is unspecified */ -+#define STT_OBJECT 1 /* Symbol is a data object */ -+#define STT_FUNC 2 /* Symbol is a code object */ -+#define STT_SECTION 3 /* Symbol associated with a section */ -+#define STT_FILE 4 /* Symbol's name is file name */ -+#define STT_COMMON 5 /* Symbol is a common data object */ -+#define STT_TLS 6 /* Symbol is thread-local data object*/ -+#define STT_NUM 7 /* Number of defined types. */ -+#define STT_LOOS 10 /* Start of OS-specific */ -+#define STT_GNU_IFUNC 10 /* Symbol is indirect code object */ -+#define STT_HIOS 12 /* End of OS-specific */ -+#define STT_LOPROC 13 /* Start of processor-specific */ -+#define STT_HIPROC 15 /* End of processor-specific */ -+ -+ -+/* Symbol table indices are found in the hash buckets and chain table -+ of a symbol hash table section. This special index value indicates -+ the end of a chain, meaning no further symbols are found in that bucket. */ -+ -+#define STN_UNDEF 0 /* End of a chain. */ -+ -+ -+/* How to extract and insert information held in the st_other field. */ -+ -+#define ELF32_ST_VISIBILITY(o) ((o) & 0x03) -+ -+/* For ELF64 the definitions are the same. */ -+#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o) -+ -+/* Symbol visibility specification encoded in the st_other field. */ -+#define STV_DEFAULT 0 /* Default symbol visibility rules */ -+#define STV_INTERNAL 1 /* Processor specific hidden class */ -+#define STV_HIDDEN 2 /* Sym unavailable in other modules */ -+#define STV_PROTECTED 3 /* Not preemptible, not exported */ -+ -+ -+/* Relocation table entry without addend (in section of type SHT_REL). */ -+ -+typedef struct -+{ -+ Elf32_Addr r_offset; /* Address */ -+ Elf32_Word r_info; /* Relocation type and symbol index */ -+} Elf32_Rel; -+ -+/* I have seen two different definitions of the Elf64_Rel and -+ Elf64_Rela structures, so we'll leave them out until Novell (or -+ whoever) gets their act together. */ -+/* The following, at least, is used on Sparc v9, MIPS, and Alpha. */ -+ -+typedef struct -+{ -+ Elf64_Addr r_offset; /* Address */ -+ Elf64_Xword r_info; /* Relocation type and symbol index */ -+} Elf64_Rel; -+ -+/* Relocation table entry with addend (in section of type SHT_RELA). */ -+ -+typedef struct -+{ -+ Elf32_Addr r_offset; /* Address */ -+ Elf32_Word r_info; /* Relocation type and symbol index */ -+ Elf32_Sword r_addend; /* Addend */ -+} Elf32_Rela; -+ -+typedef struct -+{ -+ Elf64_Addr r_offset; /* Address */ -+ Elf64_Xword r_info; /* Relocation type and symbol index */ -+ Elf64_Sxword r_addend; /* Addend */ -+} Elf64_Rela; -+ -+/* How to extract and insert information held in the r_info field. */ -+ -+#define ELF32_R_SYM(val) ((val) >> 8) -+#define ELF32_R_TYPE(val) ((val) & 0xff) -+#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff)) -+ -+#define ELF64_R_SYM(i) ((i) >> 32) -+#define ELF64_R_TYPE(i) ((i) & 0xffffffff) -+#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type)) -+ -+/* Program segment header. */ -+ -+typedef struct -+{ -+ Elf32_Word p_type; /* Segment type */ -+ Elf32_Off p_offset; /* Segment file offset */ -+ Elf32_Addr p_vaddr; /* Segment virtual address */ -+ Elf32_Addr p_paddr; /* Segment physical address */ -+ Elf32_Word p_filesz; /* Segment size in file */ -+ Elf32_Word p_memsz; /* Segment size in memory */ -+ Elf32_Word p_flags; /* Segment flags */ -+ Elf32_Word p_align; /* Segment alignment */ -+} Elf32_Phdr; -+ -+typedef struct -+{ -+ Elf64_Word p_type; /* Segment type */ -+ Elf64_Word p_flags; /* Segment flags */ -+ Elf64_Off p_offset; /* Segment file offset */ -+ Elf64_Addr p_vaddr; /* Segment virtual address */ -+ Elf64_Addr p_paddr; /* Segment physical address */ -+ Elf64_Xword p_filesz; /* Segment size in file */ -+ Elf64_Xword p_memsz; /* Segment size in memory */ -+ Elf64_Xword p_align; /* Segment alignment */ -+} Elf64_Phdr; -+ -+/* Special value for e_phnum. This indicates that the real number of -+ program headers is too large to fit into e_phnum. Instead the real -+ value is in the field sh_info of section 0. */ -+ -+#define PN_XNUM 0xffff -+ -+/* Legal values for p_type (segment type). */ -+ -+#define PT_NULL 0 /* Program header table entry unused */ -+#define PT_LOAD 1 /* Loadable program segment */ -+#define PT_DYNAMIC 2 /* Dynamic linking information */ -+#define PT_INTERP 3 /* Program interpreter */ -+#define PT_NOTE 4 /* Auxiliary information */ -+#define PT_SHLIB 5 /* Reserved */ -+#define PT_PHDR 6 /* Entry for header table itself */ -+#define PT_TLS 7 /* Thread-local storage segment */ -+#define PT_NUM 8 /* Number of defined types */ -+#define PT_LOOS 0x60000000 /* Start of OS-specific */ -+#define PT_GNU_EH_FRAME 0x6474e550 /* GCC .eh_frame_hdr segment */ -+#define PT_GNU_STACK 0x6474e551 /* Indicates stack executability */ -+#define PT_GNU_RELRO 0x6474e552 /* Read-only after relocation */ -+#define PT_LOSUNW 0x6ffffffa -+#define PT_SUNWBSS 0x6ffffffa /* Sun Specific segment */ -+#define PT_SUNWSTACK 0x6ffffffb /* Stack segment */ -+#define PT_HISUNW 0x6fffffff -+#define PT_HIOS 0x6fffffff /* End of OS-specific */ -+#define PT_LOPROC 0x70000000 /* Start of processor-specific */ -+#define PT_HIPROC 0x7fffffff /* End of processor-specific */ -+ -+/* Legal values for p_flags (segment flags). */ -+ -+#define PF_X (1 << 0) /* Segment is executable */ -+#define PF_W (1 << 1) /* Segment is writable */ -+#define PF_R (1 << 2) /* Segment is readable */ -+#define PF_MASKOS 0x0ff00000 /* OS-specific */ -+#define PF_MASKPROC 0xf0000000 /* Processor-specific */ -+ -+/* Legal values for note segment descriptor types for core files. */ -+ -+#define NT_PRSTATUS 1 /* Contains copy of prstatus struct */ -+#define NT_FPREGSET 2 /* Contains copy of fpregset struct */ -+#define NT_PRPSINFO 3 /* Contains copy of prpsinfo struct */ -+#define NT_PRXREG 4 /* Contains copy of prxregset struct */ -+#define NT_TASKSTRUCT 4 /* Contains copy of task structure */ -+#define NT_PLATFORM 5 /* String from sysinfo(SI_PLATFORM) */ -+#define NT_AUXV 6 /* Contains copy of auxv array */ -+#define NT_GWINDOWS 7 /* Contains copy of gwindows struct */ -+#define NT_ASRS 8 /* Contains copy of asrset struct */ -+#define NT_PSTATUS 10 /* Contains copy of pstatus struct */ -+#define NT_PSINFO 13 /* Contains copy of psinfo struct */ -+#define NT_PRCRED 14 /* Contains copy of prcred struct */ -+#define NT_UTSNAME 15 /* Contains copy of utsname struct */ -+#define NT_LWPSTATUS 16 /* Contains copy of lwpstatus struct */ -+#define NT_LWPSINFO 17 /* Contains copy of lwpinfo struct */ -+#define NT_PRFPXREG 20 /* Contains copy of fprxregset struct */ -+#define NT_PRXFPREG 0x46e62b7f /* Contains copy of user_fxsr_struct */ -+#define NT_PPC_VMX 0x100 /* PowerPC Altivec/VMX registers */ -+#define NT_PPC_SPE 0x101 /* PowerPC SPE/EVR registers */ -+#define NT_PPC_VSX 0x102 /* PowerPC VSX registers */ -+#define NT_386_TLS 0x200 /* i386 TLS slots (struct user_desc) */ -+#define NT_386_IOPERM 0x201 /* x86 io permission bitmap (1=deny) */ -+#define NT_X86_XSTATE 0x202 /* x86 extended state using xsave */ -+ -+/* Legal values for the note segment descriptor types for object files. */ -+ -+#define NT_VERSION 1 /* Contains a version string. */ -+ -+ -+/* Dynamic section entry. */ -+ -+typedef struct -+{ -+ Elf32_Sword d_tag; /* Dynamic entry type */ -+ union -+ { -+ Elf32_Word d_val; /* Integer value */ -+ Elf32_Addr d_ptr; /* Address value */ -+ } d_un; -+} Elf32_Dyn; -+ -+typedef struct -+{ -+ Elf64_Sxword d_tag; /* Dynamic entry type */ -+ union -+ { -+ Elf64_Xword d_val; /* Integer value */ -+ Elf64_Addr d_ptr; /* Address value */ -+ } d_un; -+} Elf64_Dyn; -+ -+/* Legal values for d_tag (dynamic entry type). */ -+ -+#define DT_NULL 0 /* Marks end of dynamic section */ -+#define DT_NEEDED 1 /* Name of needed library */ -+#define DT_PLTRELSZ 2 /* Size in bytes of PLT relocs */ -+#define DT_PLTGOT 3 /* Processor defined value */ -+#define DT_HASH 4 /* Address of symbol hash table */ -+#define DT_STRTAB 5 /* Address of string table */ -+#define DT_SYMTAB 6 /* Address of symbol table */ -+#define DT_RELA 7 /* Address of Rela relocs */ -+#define DT_RELASZ 8 /* Total size of Rela relocs */ -+#define DT_RELAENT 9 /* Size of one Rela reloc */ -+#define DT_STRSZ 10 /* Size of string table */ -+#define DT_SYMENT 11 /* Size of one symbol table entry */ -+#define DT_INIT 12 /* Address of init function */ -+#define DT_FINI 13 /* Address of termination function */ -+#define DT_SONAME 14 /* Name of shared object */ -+#define DT_RPATH 15 /* Library search path (deprecated) */ -+#define DT_SYMBOLIC 16 /* Start symbol search here */ -+#define DT_REL 17 /* Address of Rel relocs */ -+#define DT_RELSZ 18 /* Total size of Rel relocs */ -+#define DT_RELENT 19 /* Size of one Rel reloc */ -+#define DT_PLTREL 20 /* Type of reloc in PLT */ -+#define DT_DEBUG 21 /* For debugging; unspecified */ -+#define DT_TEXTREL 22 /* Reloc might modify .text */ -+#define DT_JMPREL 23 /* Address of PLT relocs */ -+#define DT_BIND_NOW 24 /* Process relocations of object */ -+#define DT_INIT_ARRAY 25 /* Array with addresses of init fct */ -+#define DT_FINI_ARRAY 26 /* Array with addresses of fini fct */ -+#define DT_INIT_ARRAYSZ 27 /* Size in bytes of DT_INIT_ARRAY */ -+#define DT_FINI_ARRAYSZ 28 /* Size in bytes of DT_FINI_ARRAY */ -+#define DT_RUNPATH 29 /* Library search path */ -+#define DT_FLAGS 30 /* Flags for the object being loaded */ -+#define DT_ENCODING 32 /* Start of encoded range */ -+#define DT_PREINIT_ARRAY 32 /* Array with addresses of preinit fct*/ -+#define DT_PREINIT_ARRAYSZ 33 /* size in bytes of DT_PREINIT_ARRAY */ -+#define DT_NUM 34 /* Number used */ -+#define DT_LOOS 0x6000000d /* Start of OS-specific */ -+#define DT_HIOS 0x6ffff000 /* End of OS-specific */ -+#define DT_LOPROC 0x70000000 /* Start of processor-specific */ -+#define DT_HIPROC 0x7fffffff /* End of processor-specific */ -+#define DT_PROCNUM DT_MIPS_NUM /* Most used by any processor */ -+ -+/* DT_* entries which fall between DT_VALRNGHI & DT_VALRNGLO use the -+ Dyn.d_un.d_val field of the Elf*_Dyn structure. This follows Sun's -+ approach. */ -+#define DT_VALRNGLO 0x6ffffd00 -+#define DT_GNU_PRELINKED 0x6ffffdf5 /* Prelinking timestamp */ -+#define DT_GNU_CONFLICTSZ 0x6ffffdf6 /* Size of conflict section */ -+#define DT_GNU_LIBLISTSZ 0x6ffffdf7 /* Size of library list */ -+#define DT_CHECKSUM 0x6ffffdf8 -+#define DT_PLTPADSZ 0x6ffffdf9 -+#define DT_MOVEENT 0x6ffffdfa -+#define DT_MOVESZ 0x6ffffdfb -+#define DT_FEATURE_1 0x6ffffdfc /* Feature selection (DTF_*). */ -+#define DT_POSFLAG_1 0x6ffffdfd /* Flags for DT_* entries, effecting -+ the following DT_* entry. */ -+#define DT_SYMINSZ 0x6ffffdfe /* Size of syminfo table (in bytes) */ -+#define DT_SYMINENT 0x6ffffdff /* Entry size of syminfo */ -+#define DT_VALRNGHI 0x6ffffdff -+#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag)) /* Reverse order! */ -+#define DT_VALNUM 12 -+ -+/* DT_* entries which fall between DT_ADDRRNGHI & DT_ADDRRNGLO use the -+ Dyn.d_un.d_ptr field of the Elf*_Dyn structure. -+ -+ If any adjustment is made to the ELF object after it has been -+ built these entries will need to be adjusted. */ -+#define DT_ADDRRNGLO 0x6ffffe00 -+#define DT_GNU_HASH 0x6ffffef5 /* GNU-style hash table. */ -+#define DT_TLSDESC_PLT 0x6ffffef6 -+#define DT_TLSDESC_GOT 0x6ffffef7 -+#define DT_GNU_CONFLICT 0x6ffffef8 /* Start of conflict section */ -+#define DT_GNU_LIBLIST 0x6ffffef9 /* Library list */ -+#define DT_CONFIG 0x6ffffefa /* Configuration information. */ -+#define DT_DEPAUDIT 0x6ffffefb /* Dependency auditing. */ -+#define DT_AUDIT 0x6ffffefc /* Object auditing. */ -+#define DT_PLTPAD 0x6ffffefd /* PLT padding. */ -+#define DT_MOVETAB 0x6ffffefe /* Move table. */ -+#define DT_SYMINFO 0x6ffffeff /* Syminfo table. */ -+#define DT_ADDRRNGHI 0x6ffffeff -+#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag)) /* Reverse order! */ -+#define DT_ADDRNUM 11 -+ -+/* The versioning entry types. The next are defined as part of the -+ GNU extension. */ -+#define DT_VERSYM 0x6ffffff0 -+ -+#define DT_RELACOUNT 0x6ffffff9 -+#define DT_RELCOUNT 0x6ffffffa -+ -+/* These were chosen by Sun. */ -+#define DT_FLAGS_1 0x6ffffffb /* State flags, see DF_1_* below. */ -+#define DT_VERDEF 0x6ffffffc /* Address of version definition -+ table */ -+#define DT_VERDEFNUM 0x6ffffffd /* Number of version definitions */ -+#define DT_VERNEED 0x6ffffffe /* Address of table with needed -+ versions */ -+#define DT_VERNEEDNUM 0x6fffffff /* Number of needed versions */ -+#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) /* Reverse order! */ -+#define DT_VERSIONTAGNUM 16 -+ -+/* Sun added these machine-independent extensions in the "processor-specific" -+ range. Be compatible. */ -+#define DT_AUXILIARY 0x7ffffffd /* Shared object to load before self */ -+#define DT_FILTER 0x7fffffff /* Shared object to get values from */ -+#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1) -+#define DT_EXTRANUM 3 -+ -+/* Values of `d_un.d_val' in the DT_FLAGS entry. */ -+#define DF_ORIGIN 0x00000001 /* Object may use DF_ORIGIN */ -+#define DF_SYMBOLIC 0x00000002 /* Symbol resolutions starts here */ -+#define DF_TEXTREL 0x00000004 /* Object contains text relocations */ -+#define DF_BIND_NOW 0x00000008 /* No lazy binding for this object */ -+#define DF_STATIC_TLS 0x00000010 /* Module uses the static TLS model */ -+ -+/* State flags selectable in the `d_un.d_val' element of the DT_FLAGS_1 -+ entry in the dynamic section. */ -+#define DF_1_NOW 0x00000001 /* Set RTLD_NOW for this object. */ -+#define DF_1_GLOBAL 0x00000002 /* Set RTLD_GLOBAL for this object. */ -+#define DF_1_GROUP 0x00000004 /* Set RTLD_GROUP for this object. */ -+#define DF_1_NODELETE 0x00000008 /* Set RTLD_NODELETE for this object.*/ -+#define DF_1_LOADFLTR 0x00000010 /* Trigger filtee loading at runtime.*/ -+#define DF_1_INITFIRST 0x00000020 /* Set RTLD_INITFIRST for this object*/ -+#define DF_1_NOOPEN 0x00000040 /* Set RTLD_NOOPEN for this object. */ -+#define DF_1_ORIGIN 0x00000080 /* $ORIGIN must be handled. */ -+#define DF_1_DIRECT 0x00000100 /* Direct binding enabled. */ -+#define DF_1_TRANS 0x00000200 -+#define DF_1_INTERPOSE 0x00000400 /* Object is used to interpose. */ -+#define DF_1_NODEFLIB 0x00000800 /* Ignore default lib search path. */ -+#define DF_1_NODUMP 0x00001000 /* Object can't be dldump'ed. */ -+#define DF_1_CONFALT 0x00002000 /* Configuration alternative created.*/ -+#define DF_1_ENDFILTEE 0x00004000 /* Filtee terminates filters search. */ -+#define DF_1_DISPRELDNE 0x00008000 /* Disp reloc applied at build time. */ -+#define DF_1_DISPRELPND 0x00010000 /* Disp reloc applied at run-time. */ -+ -+/* Flags for the feature selection in DT_FEATURE_1. */ -+#define DTF_1_PARINIT 0x00000001 -+#define DTF_1_CONFEXP 0x00000002 -+ -+/* Flags in the DT_POSFLAG_1 entry effecting only the next DT_* entry. */ -+#define DF_P1_LAZYLOAD 0x00000001 /* Lazyload following object. */ -+#define DF_P1_GROUPPERM 0x00000002 /* Symbols from next object are not -+ generally available. */ -+ -+/* Version definition sections. */ -+ -+typedef struct -+{ -+ Elf32_Half vd_version; /* Version revision */ -+ Elf32_Half vd_flags; /* Version information */ -+ Elf32_Half vd_ndx; /* Version Index */ -+ Elf32_Half vd_cnt; /* Number of associated aux entries */ -+ Elf32_Word vd_hash; /* Version name hash value */ -+ Elf32_Word vd_aux; /* Offset in bytes to verdaux array */ -+ Elf32_Word vd_next; /* Offset in bytes to next verdef -+ entry */ -+} Elf32_Verdef; -+ -+typedef struct -+{ -+ Elf64_Half vd_version; /* Version revision */ -+ Elf64_Half vd_flags; /* Version information */ -+ Elf64_Half vd_ndx; /* Version Index */ -+ Elf64_Half vd_cnt; /* Number of associated aux entries */ -+ Elf64_Word vd_hash; /* Version name hash value */ -+ Elf64_Word vd_aux; /* Offset in bytes to verdaux array */ -+ Elf64_Word vd_next; /* Offset in bytes to next verdef -+ entry */ -+} Elf64_Verdef; -+ -+ -+/* Legal values for vd_version (version revision). */ -+#define VER_DEF_NONE 0 /* No version */ -+#define VER_DEF_CURRENT 1 /* Current version */ -+#define VER_DEF_NUM 2 /* Given version number */ -+ -+/* Legal values for vd_flags (version information flags). */ -+#define VER_FLG_BASE 0x1 /* Version definition of file itself */ -+#define VER_FLG_WEAK 0x2 /* Weak version identifier */ -+ -+/* Versym symbol index values. */ -+#define VER_NDX_LOCAL 0 /* Symbol is local. */ -+#define VER_NDX_GLOBAL 1 /* Symbol is global. */ -+#define VER_NDX_LORESERVE 0xff00 /* Beginning of reserved entries. */ -+#define VER_NDX_ELIMINATE 0xff01 /* Symbol is to be eliminated. */ -+ -+/* Auxialiary version information. */ -+ -+typedef struct -+{ -+ Elf32_Word vda_name; /* Version or dependency names */ -+ Elf32_Word vda_next; /* Offset in bytes to next verdaux -+ entry */ -+} Elf32_Verdaux; -+ -+typedef struct -+{ -+ Elf64_Word vda_name; /* Version or dependency names */ -+ Elf64_Word vda_next; /* Offset in bytes to next verdaux -+ entry */ -+} Elf64_Verdaux; -+ -+ -+/* Version dependency section. */ -+ -+typedef struct -+{ -+ Elf32_Half vn_version; /* Version of structure */ -+ Elf32_Half vn_cnt; /* Number of associated aux entries */ -+ Elf32_Word vn_file; /* Offset of filename for this -+ dependency */ -+ Elf32_Word vn_aux; /* Offset in bytes to vernaux array */ -+ Elf32_Word vn_next; /* Offset in bytes to next verneed -+ entry */ -+} Elf32_Verneed; -+ -+typedef struct -+{ -+ Elf64_Half vn_version; /* Version of structure */ -+ Elf64_Half vn_cnt; /* Number of associated aux entries */ -+ Elf64_Word vn_file; /* Offset of filename for this -+ dependency */ -+ Elf64_Word vn_aux; /* Offset in bytes to vernaux array */ -+ Elf64_Word vn_next; /* Offset in bytes to next verneed -+ entry */ -+} Elf64_Verneed; -+ -+ -+/* Legal values for vn_version (version revision). */ -+#define VER_NEED_NONE 0 /* No version */ -+#define VER_NEED_CURRENT 1 /* Current version */ -+#define VER_NEED_NUM 2 /* Given version number */ -+ -+/* Auxiliary needed version information. */ -+ -+typedef struct -+{ -+ Elf32_Word vna_hash; /* Hash value of dependency name */ -+ Elf32_Half vna_flags; /* Dependency specific information */ -+ Elf32_Half vna_other; /* Unused */ -+ Elf32_Word vna_name; /* Dependency name string offset */ -+ Elf32_Word vna_next; /* Offset in bytes to next vernaux -+ entry */ -+} Elf32_Vernaux; -+ -+typedef struct -+{ -+ Elf64_Word vna_hash; /* Hash value of dependency name */ -+ Elf64_Half vna_flags; /* Dependency specific information */ -+ Elf64_Half vna_other; /* Unused */ -+ Elf64_Word vna_name; /* Dependency name string offset */ -+ Elf64_Word vna_next; /* Offset in bytes to next vernaux -+ entry */ -+} Elf64_Vernaux; -+ -+ -+/* Legal values for vna_flags. */ -+#define VER_FLG_WEAK 0x2 /* Weak version identifier */ -+ -+ -+/* Auxiliary vector. */ -+ -+/* This vector is normally only used by the program interpreter. The -+ usual definition in an ABI supplement uses the name auxv_t. The -+ vector is not usually defined in a standard file, but it -+ can't hurt. We rename it to avoid conflicts. The sizes of these -+ types are an arrangement between the exec server and the program -+ interpreter, so we don't fully specify them here. */ -+ -+typedef struct -+{ -+ uint32_t a_type; /* Entry type */ -+ union -+ { -+ uint32_t a_val; /* Integer value */ -+ /* We use to have pointer elements added here. We cannot do that, -+ though, since it does not work when using 32-bit definitions -+ on 64-bit platforms and vice versa. */ -+ } a_un; -+} Elf32_auxv_t; -+ -+typedef struct -+{ -+ uint64_t a_type; /* Entry type */ -+ union -+ { -+ uint64_t a_val; /* Integer value */ -+ /* We use to have pointer elements added here. We cannot do that, -+ though, since it does not work when using 32-bit definitions -+ on 64-bit platforms and vice versa. */ -+ } a_un; -+} Elf64_auxv_t; -+ -+/* Legal values for a_type (entry type). */ -+ -+#define AT_NULL 0 /* End of vector */ -+#define AT_IGNORE 1 /* Entry should be ignored */ -+#define AT_EXECFD 2 /* File descriptor of program */ -+#define AT_PHDR 3 /* Program headers for program */ -+#define AT_PHENT 4 /* Size of program header entry */ -+#define AT_PHNUM 5 /* Number of program headers */ -+#define AT_PAGESZ 6 /* System page size */ -+#define AT_BASE 7 /* Base address of interpreter */ -+#define AT_FLAGS 8 /* Flags */ -+#define AT_ENTRY 9 /* Entry point of program */ -+#define AT_NOTELF 10 /* Program is not ELF */ -+#define AT_UID 11 /* Real uid */ -+#define AT_EUID 12 /* Effective uid */ -+#define AT_GID 13 /* Real gid */ -+#define AT_EGID 14 /* Effective gid */ -+#define AT_CLKTCK 17 /* Frequency of times() */ -+ -+/* Some more special a_type values describing the hardware. */ -+#define AT_PLATFORM 15 /* String identifying platform. */ -+#define AT_HWCAP 16 /* Machine dependent hints about -+ processor capabilities. */ -+ -+/* This entry gives some information about the FPU initialization -+ performed by the kernel. */ -+#define AT_FPUCW 18 /* Used FPU control word. */ -+ -+/* Cache block sizes. */ -+#define AT_DCACHEBSIZE 19 /* Data cache block size. */ -+#define AT_ICACHEBSIZE 20 /* Instruction cache block size. */ -+#define AT_UCACHEBSIZE 21 /* Unified cache block size. */ -+ -+/* A special ignored value for PPC, used by the kernel to control the -+ interpretation of the AUXV. Must be > 16. */ -+#define AT_IGNOREPPC 22 /* Entry should be ignored. */ -+ -+#define AT_SECURE 23 /* Boolean, was exec setuid-like? */ -+ -+#define AT_BASE_PLATFORM 24 /* String identifying real platforms.*/ -+ -+#define AT_RANDOM 25 /* Address of 16 random bytes. */ -+ -+#define AT_EXECFN 31 /* Filename of executable. */ -+ -+/* Pointer to the global system page used for system calls and other -+ nice things. */ -+#define AT_SYSINFO 32 -+#define AT_SYSINFO_EHDR 33 -+ -+/* Shapes of the caches. Bits 0-3 contains associativity; bits 4-7 contains -+ log2 of line size; mask those to get cache size. */ -+#define AT_L1I_CACHESHAPE 34 -+#define AT_L1D_CACHESHAPE 35 -+#define AT_L2_CACHESHAPE 36 -+#define AT_L3_CACHESHAPE 37 -+ -+/* Note section contents. Each entry in the note section begins with -+ a header of a fixed form. */ -+ -+typedef struct -+{ -+ Elf32_Word n_namesz; /* Length of the note's name. */ -+ Elf32_Word n_descsz; /* Length of the note's descriptor. */ -+ Elf32_Word n_type; /* Type of the note. */ -+} Elf32_Nhdr; -+ -+typedef struct -+{ -+ Elf64_Word n_namesz; /* Length of the note's name. */ -+ Elf64_Word n_descsz; /* Length of the note's descriptor. */ -+ Elf64_Word n_type; /* Type of the note. */ -+} Elf64_Nhdr; -+ -+/* Known names of notes. */ -+ -+/* Solaris entries in the note section have this name. */ -+#define ELF_NOTE_SOLARIS "SUNW Solaris" -+ -+/* Note entries for GNU systems have this name. */ -+#define ELF_NOTE_GNU "GNU" -+ -+ -+/* Defined types of notes for Solaris. */ -+ -+/* Value of descriptor (one word) is desired pagesize for the binary. */ -+#define ELF_NOTE_PAGESIZE_HINT 1 -+ -+ -+/* Defined note types for GNU systems. */ -+ -+/* ABI information. The descriptor consists of words: -+ word 0: OS descriptor -+ word 1: major version of the ABI -+ word 2: minor version of the ABI -+ word 3: subminor version of the ABI -+*/ -+#define NT_GNU_ABI_TAG 1 -+#define ELF_NOTE_ABI NT_GNU_ABI_TAG /* Old name. */ -+ -+/* Known OSes. These values can appear in word 0 of an -+ NT_GNU_ABI_TAG note section entry. */ -+#define ELF_NOTE_OS_LINUX 0 -+#define ELF_NOTE_OS_GNU 1 -+#define ELF_NOTE_OS_SOLARIS2 2 -+#define ELF_NOTE_OS_FREEBSD 3 -+ -+/* Synthetic hwcap information. The descriptor begins with two words: -+ word 0: number of entries -+ word 1: bitmask of enabled entries -+ Then follow variable-length entries, one byte followed by a -+ '\0'-terminated hwcap name string. The byte gives the bit -+ number to test if enabled, (1U << bit) & bitmask. */ -+#define NT_GNU_HWCAP 2 -+ -+/* Build ID bits as generated by ld --build-id. -+ The descriptor consists of any nonzero number of bytes. */ -+#define NT_GNU_BUILD_ID 3 -+ -+/* Version note generated by GNU gold containing a version string. */ -+#define NT_GNU_GOLD_VERSION 4 -+ -+ -+/* Move records. */ -+typedef struct -+{ -+ Elf32_Xword m_value; /* Symbol value. */ -+ Elf32_Word m_info; /* Size and index. */ -+ Elf32_Word m_poffset; /* Symbol offset. */ -+ Elf32_Half m_repeat; /* Repeat count. */ -+ Elf32_Half m_stride; /* Stride info. */ -+} Elf32_Move; -+ -+typedef struct -+{ -+ Elf64_Xword m_value; /* Symbol value. */ -+ Elf64_Xword m_info; /* Size and index. */ -+ Elf64_Xword m_poffset; /* Symbol offset. */ -+ Elf64_Half m_repeat; /* Repeat count. */ -+ Elf64_Half m_stride; /* Stride info. */ -+} Elf64_Move; -+ -+/* Macro to construct move records. */ -+#define ELF32_M_SYM(info) ((info) >> 8) -+#define ELF32_M_SIZE(info) ((unsigned char) (info)) -+#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size)) -+ -+#define ELF64_M_SYM(info) ELF32_M_SYM (info) -+#define ELF64_M_SIZE(info) ELF32_M_SIZE (info) -+#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size) -+ -+ -+/* Motorola 68k specific definitions. */ -+ -+/* Values for Elf32_Ehdr.e_flags. */ -+#define EF_CPU32 0x00810000 -+ -+/* m68k relocs. */ -+ -+#define R_68K_NONE 0 /* No reloc */ -+#define R_68K_32 1 /* Direct 32 bit */ -+#define R_68K_16 2 /* Direct 16 bit */ -+#define R_68K_8 3 /* Direct 8 bit */ -+#define R_68K_PC32 4 /* PC relative 32 bit */ -+#define R_68K_PC16 5 /* PC relative 16 bit */ -+#define R_68K_PC8 6 /* PC relative 8 bit */ -+#define R_68K_GOT32 7 /* 32 bit PC relative GOT entry */ -+#define R_68K_GOT16 8 /* 16 bit PC relative GOT entry */ -+#define R_68K_GOT8 9 /* 8 bit PC relative GOT entry */ -+#define R_68K_GOT32O 10 /* 32 bit GOT offset */ -+#define R_68K_GOT16O 11 /* 16 bit GOT offset */ -+#define R_68K_GOT8O 12 /* 8 bit GOT offset */ -+#define R_68K_PLT32 13 /* 32 bit PC relative PLT address */ -+#define R_68K_PLT16 14 /* 16 bit PC relative PLT address */ -+#define R_68K_PLT8 15 /* 8 bit PC relative PLT address */ -+#define R_68K_PLT32O 16 /* 32 bit PLT offset */ -+#define R_68K_PLT16O 17 /* 16 bit PLT offset */ -+#define R_68K_PLT8O 18 /* 8 bit PLT offset */ -+#define R_68K_COPY 19 /* Copy symbol at runtime */ -+#define R_68K_GLOB_DAT 20 /* Create GOT entry */ -+#define R_68K_JMP_SLOT 21 /* Create PLT entry */ -+#define R_68K_RELATIVE 22 /* Adjust by program base */ -+#define R_68K_TLS_GD32 25 /* 32 bit GOT offset for GD */ -+#define R_68K_TLS_GD16 26 /* 16 bit GOT offset for GD */ -+#define R_68K_TLS_GD8 27 /* 8 bit GOT offset for GD */ -+#define R_68K_TLS_LDM32 28 /* 32 bit GOT offset for LDM */ -+#define R_68K_TLS_LDM16 29 /* 16 bit GOT offset for LDM */ -+#define R_68K_TLS_LDM8 30 /* 8 bit GOT offset for LDM */ -+#define R_68K_TLS_LDO32 31 /* 32 bit module-relative offset */ -+#define R_68K_TLS_LDO16 32 /* 16 bit module-relative offset */ -+#define R_68K_TLS_LDO8 33 /* 8 bit module-relative offset */ -+#define R_68K_TLS_IE32 34 /* 32 bit GOT offset for IE */ -+#define R_68K_TLS_IE16 35 /* 16 bit GOT offset for IE */ -+#define R_68K_TLS_IE8 36 /* 8 bit GOT offset for IE */ -+#define R_68K_TLS_LE32 37 /* 32 bit offset relative to -+ static TLS block */ -+#define R_68K_TLS_LE16 38 /* 16 bit offset relative to -+ static TLS block */ -+#define R_68K_TLS_LE8 39 /* 8 bit offset relative to -+ static TLS block */ -+#define R_68K_TLS_DTPMOD32 40 /* 32 bit module number */ -+#define R_68K_TLS_DTPREL32 41 /* 32 bit module-relative offset */ -+#define R_68K_TLS_TPREL32 42 /* 32 bit TP-relative offset */ -+/* Keep this the last entry. */ -+#define R_68K_NUM 43 -+ -+/* Intel 80386 specific definitions. */ -+ -+/* i386 relocs. */ -+ -+#define R_386_NONE 0 /* No reloc */ -+#define R_386_32 1 /* Direct 32 bit */ -+#define R_386_PC32 2 /* PC relative 32 bit */ -+#define R_386_GOT32 3 /* 32 bit GOT entry */ -+#define R_386_PLT32 4 /* 32 bit PLT address */ -+#define R_386_COPY 5 /* Copy symbol at runtime */ -+#define R_386_GLOB_DAT 6 /* Create GOT entry */ -+#define R_386_JMP_SLOT 7 /* Create PLT entry */ -+#define R_386_RELATIVE 8 /* Adjust by program base */ -+#define R_386_GOTOFF 9 /* 32 bit offset to GOT */ -+#define R_386_GOTPC 10 /* 32 bit PC relative offset to GOT */ -+#define R_386_32PLT 11 -+#define R_386_TLS_TPOFF 14 /* Offset in static TLS block */ -+#define R_386_TLS_IE 15 /* Address of GOT entry for static TLS -+ block offset */ -+#define R_386_TLS_GOTIE 16 /* GOT entry for static TLS block -+ offset */ -+#define R_386_TLS_LE 17 /* Offset relative to static TLS -+ block */ -+#define R_386_TLS_GD 18 /* Direct 32 bit for GNU version of -+ general dynamic thread local data */ -+#define R_386_TLS_LDM 19 /* Direct 32 bit for GNU version of -+ local dynamic thread local data -+ in LE code */ -+#define R_386_16 20 -+#define R_386_PC16 21 -+#define R_386_8 22 -+#define R_386_PC8 23 -+#define R_386_TLS_GD_32 24 /* Direct 32 bit for general dynamic -+ thread local data */ -+#define R_386_TLS_GD_PUSH 25 /* Tag for pushl in GD TLS code */ -+#define R_386_TLS_GD_CALL 26 /* Relocation for call to -+ __tls_get_addr() */ -+#define R_386_TLS_GD_POP 27 /* Tag for popl in GD TLS code */ -+#define R_386_TLS_LDM_32 28 /* Direct 32 bit for local dynamic -+ thread local data in LE code */ -+#define R_386_TLS_LDM_PUSH 29 /* Tag for pushl in LDM TLS code */ -+#define R_386_TLS_LDM_CALL 30 /* Relocation for call to -+ __tls_get_addr() in LDM code */ -+#define R_386_TLS_LDM_POP 31 /* Tag for popl in LDM TLS code */ -+#define R_386_TLS_LDO_32 32 /* Offset relative to TLS block */ -+#define R_386_TLS_IE_32 33 /* GOT entry for negated static TLS -+ block offset */ -+#define R_386_TLS_LE_32 34 /* Negated offset relative to static -+ TLS block */ -+#define R_386_TLS_DTPMOD32 35 /* ID of module containing symbol */ -+#define R_386_TLS_DTPOFF32 36 /* Offset in TLS block */ -+#define R_386_TLS_TPOFF32 37 /* Negated offset in static TLS block */ -+/* 38? */ -+#define R_386_TLS_GOTDESC 39 /* GOT offset for TLS descriptor. */ -+#define R_386_TLS_DESC_CALL 40 /* Marker of call through TLS -+ descriptor for -+ relaxation. */ -+#define R_386_TLS_DESC 41 /* TLS descriptor containing -+ pointer to code and to -+ argument, returning the TLS -+ offset for the symbol. */ -+#define R_386_IRELATIVE 42 /* Adjust indirectly by program base */ -+/* Keep this the last entry. */ -+#define R_386_NUM 43 -+ -+/* SUN SPARC specific definitions. */ -+ -+/* Legal values for ST_TYPE subfield of st_info (symbol type). */ -+ -+#define STT_SPARC_REGISTER 13 /* Global register reserved to app. */ -+ -+/* Values for Elf64_Ehdr.e_flags. */ -+ -+#define EF_SPARCV9_MM 3 -+#define EF_SPARCV9_TSO 0 -+#define EF_SPARCV9_PSO 1 -+#define EF_SPARCV9_RMO 2 -+#define EF_SPARC_LEDATA 0x800000 /* little endian data */ -+#define EF_SPARC_EXT_MASK 0xFFFF00 -+#define EF_SPARC_32PLUS 0x000100 /* generic V8+ features */ -+#define EF_SPARC_SUN_US1 0x000200 /* Sun UltraSPARC1 extensions */ -+#define EF_SPARC_HAL_R1 0x000400 /* HAL R1 extensions */ -+#define EF_SPARC_SUN_US3 0x000800 /* Sun UltraSPARCIII extensions */ -+ -+/* SPARC relocs. */ -+ -+#define R_SPARC_NONE 0 /* No reloc */ -+#define R_SPARC_8 1 /* Direct 8 bit */ -+#define R_SPARC_16 2 /* Direct 16 bit */ -+#define R_SPARC_32 3 /* Direct 32 bit */ -+#define R_SPARC_DISP8 4 /* PC relative 8 bit */ -+#define R_SPARC_DISP16 5 /* PC relative 16 bit */ -+#define R_SPARC_DISP32 6 /* PC relative 32 bit */ -+#define R_SPARC_WDISP30 7 /* PC relative 30 bit shifted */ -+#define R_SPARC_WDISP22 8 /* PC relative 22 bit shifted */ -+#define R_SPARC_HI22 9 /* High 22 bit */ -+#define R_SPARC_22 10 /* Direct 22 bit */ -+#define R_SPARC_13 11 /* Direct 13 bit */ -+#define R_SPARC_LO10 12 /* Truncated 10 bit */ -+#define R_SPARC_GOT10 13 /* Truncated 10 bit GOT entry */ -+#define R_SPARC_GOT13 14 /* 13 bit GOT entry */ -+#define R_SPARC_GOT22 15 /* 22 bit GOT entry shifted */ -+#define R_SPARC_PC10 16 /* PC relative 10 bit truncated */ -+#define R_SPARC_PC22 17 /* PC relative 22 bit shifted */ -+#define R_SPARC_WPLT30 18 /* 30 bit PC relative PLT address */ -+#define R_SPARC_COPY 19 /* Copy symbol at runtime */ -+#define R_SPARC_GLOB_DAT 20 /* Create GOT entry */ -+#define R_SPARC_JMP_SLOT 21 /* Create PLT entry */ -+#define R_SPARC_RELATIVE 22 /* Adjust by program base */ -+#define R_SPARC_UA32 23 /* Direct 32 bit unaligned */ -+ -+/* Additional Sparc64 relocs. */ -+ -+#define R_SPARC_PLT32 24 /* Direct 32 bit ref to PLT entry */ -+#define R_SPARC_HIPLT22 25 /* High 22 bit PLT entry */ -+#define R_SPARC_LOPLT10 26 /* Truncated 10 bit PLT entry */ -+#define R_SPARC_PCPLT32 27 /* PC rel 32 bit ref to PLT entry */ -+#define R_SPARC_PCPLT22 28 /* PC rel high 22 bit PLT entry */ -+#define R_SPARC_PCPLT10 29 /* PC rel trunc 10 bit PLT entry */ -+#define R_SPARC_10 30 /* Direct 10 bit */ -+#define R_SPARC_11 31 /* Direct 11 bit */ -+#define R_SPARC_64 32 /* Direct 64 bit */ -+#define R_SPARC_OLO10 33 /* 10bit with secondary 13bit addend */ -+#define R_SPARC_HH22 34 /* Top 22 bits of direct 64 bit */ -+#define R_SPARC_HM10 35 /* High middle 10 bits of ... */ -+#define R_SPARC_LM22 36 /* Low middle 22 bits of ... */ -+#define R_SPARC_PC_HH22 37 /* Top 22 bits of pc rel 64 bit */ -+#define R_SPARC_PC_HM10 38 /* High middle 10 bit of ... */ -+#define R_SPARC_PC_LM22 39 /* Low miggle 22 bits of ... */ -+#define R_SPARC_WDISP16 40 /* PC relative 16 bit shifted */ -+#define R_SPARC_WDISP19 41 /* PC relative 19 bit shifted */ -+#define R_SPARC_GLOB_JMP 42 /* was part of v9 ABI but was removed */ -+#define R_SPARC_7 43 /* Direct 7 bit */ -+#define R_SPARC_5 44 /* Direct 5 bit */ -+#define R_SPARC_6 45 /* Direct 6 bit */ -+#define R_SPARC_DISP64 46 /* PC relative 64 bit */ -+#define R_SPARC_PLT64 47 /* Direct 64 bit ref to PLT entry */ -+#define R_SPARC_HIX22 48 /* High 22 bit complemented */ -+#define R_SPARC_LOX10 49 /* Truncated 11 bit complemented */ -+#define R_SPARC_H44 50 /* Direct high 12 of 44 bit */ -+#define R_SPARC_M44 51 /* Direct mid 22 of 44 bit */ -+#define R_SPARC_L44 52 /* Direct low 10 of 44 bit */ -+#define R_SPARC_REGISTER 53 /* Global register usage */ -+#define R_SPARC_UA64 54 /* Direct 64 bit unaligned */ -+#define R_SPARC_UA16 55 /* Direct 16 bit unaligned */ -+#define R_SPARC_TLS_GD_HI22 56 -+#define R_SPARC_TLS_GD_LO10 57 -+#define R_SPARC_TLS_GD_ADD 58 -+#define R_SPARC_TLS_GD_CALL 59 -+#define R_SPARC_TLS_LDM_HI22 60 -+#define R_SPARC_TLS_LDM_LO10 61 -+#define R_SPARC_TLS_LDM_ADD 62 -+#define R_SPARC_TLS_LDM_CALL 63 -+#define R_SPARC_TLS_LDO_HIX22 64 -+#define R_SPARC_TLS_LDO_LOX10 65 -+#define R_SPARC_TLS_LDO_ADD 66 -+#define R_SPARC_TLS_IE_HI22 67 -+#define R_SPARC_TLS_IE_LO10 68 -+#define R_SPARC_TLS_IE_LD 69 -+#define R_SPARC_TLS_IE_LDX 70 -+#define R_SPARC_TLS_IE_ADD 71 -+#define R_SPARC_TLS_LE_HIX22 72 -+#define R_SPARC_TLS_LE_LOX10 73 -+#define R_SPARC_TLS_DTPMOD32 74 -+#define R_SPARC_TLS_DTPMOD64 75 -+#define R_SPARC_TLS_DTPOFF32 76 -+#define R_SPARC_TLS_DTPOFF64 77 -+#define R_SPARC_TLS_TPOFF32 78 -+#define R_SPARC_TLS_TPOFF64 79 -+#define R_SPARC_GOTDATA_HIX22 80 -+#define R_SPARC_GOTDATA_LOX10 81 -+#define R_SPARC_GOTDATA_OP_HIX22 82 -+#define R_SPARC_GOTDATA_OP_LOX10 83 -+#define R_SPARC_GOTDATA_OP 84 -+#define R_SPARC_H34 85 -+#define R_SPARC_SIZE32 86 -+#define R_SPARC_SIZE64 87 -+#define R_SPARC_WDISP10 88 -+#define R_SPARC_JMP_IREL 248 -+#define R_SPARC_IRELATIVE 249 -+#define R_SPARC_GNU_VTINHERIT 250 -+#define R_SPARC_GNU_VTENTRY 251 -+#define R_SPARC_REV32 252 -+/* Keep this the last entry. */ -+#define R_SPARC_NUM 253 -+ -+/* For Sparc64, legal values for d_tag of Elf64_Dyn. */ -+ -+#define DT_SPARC_REGISTER 0x70000001 -+#define DT_SPARC_NUM 2 -+ -+/* MIPS R3000 specific definitions. */ -+ -+/* Legal values for e_flags field of Elf32_Ehdr. */ -+ -+#define EF_MIPS_NOREORDER 1 /* A .noreorder directive was used */ -+#define EF_MIPS_PIC 2 /* Contains PIC code */ -+#define EF_MIPS_CPIC 4 /* Uses PIC calling sequence */ -+#define EF_MIPS_XGOT 8 -+#define EF_MIPS_64BIT_WHIRL 16 -+#define EF_MIPS_ABI2 32 -+#define EF_MIPS_ABI_ON32 64 -+#define EF_MIPS_ARCH 0xf0000000 /* MIPS architecture level */ -+ -+/* Legal values for MIPS architecture level. */ -+ -+#define EF_MIPS_ARCH_1 0x00000000 /* -mips1 code. */ -+#define EF_MIPS_ARCH_2 0x10000000 /* -mips2 code. */ -+#define EF_MIPS_ARCH_3 0x20000000 /* -mips3 code. */ -+#define EF_MIPS_ARCH_4 0x30000000 /* -mips4 code. */ -+#define EF_MIPS_ARCH_5 0x40000000 /* -mips5 code. */ -+#define EF_MIPS_ARCH_32 0x60000000 /* MIPS32 code. */ -+#define EF_MIPS_ARCH_64 0x70000000 /* MIPS64 code. */ -+ -+/* The following are non-official names and should not be used. */ -+ -+#define E_MIPS_ARCH_1 0x00000000 /* -mips1 code. */ -+#define E_MIPS_ARCH_2 0x10000000 /* -mips2 code. */ -+#define E_MIPS_ARCH_3 0x20000000 /* -mips3 code. */ -+#define E_MIPS_ARCH_4 0x30000000 /* -mips4 code. */ -+#define E_MIPS_ARCH_5 0x40000000 /* -mips5 code. */ -+#define E_MIPS_ARCH_32 0x60000000 /* MIPS32 code. */ -+#define E_MIPS_ARCH_64 0x70000000 /* MIPS64 code. */ -+ -+/* Special section indices. */ -+ -+#define SHN_MIPS_ACOMMON 0xff00 /* Allocated common symbols */ -+#define SHN_MIPS_TEXT 0xff01 /* Allocated test symbols. */ -+#define SHN_MIPS_DATA 0xff02 /* Allocated data symbols. */ -+#define SHN_MIPS_SCOMMON 0xff03 /* Small common symbols */ -+#define SHN_MIPS_SUNDEFINED 0xff04 /* Small undefined symbols */ -+ -+/* Legal values for sh_type field of Elf32_Shdr. */ -+ -+#define SHT_MIPS_LIBLIST 0x70000000 /* Shared objects used in link */ -+#define SHT_MIPS_MSYM 0x70000001 -+#define SHT_MIPS_CONFLICT 0x70000002 /* Conflicting symbols */ -+#define SHT_MIPS_GPTAB 0x70000003 /* Global data area sizes */ -+#define SHT_MIPS_UCODE 0x70000004 /* Reserved for SGI/MIPS compilers */ -+#define SHT_MIPS_DEBUG 0x70000005 /* MIPS ECOFF debugging information*/ -+#define SHT_MIPS_REGINFO 0x70000006 /* Register usage information */ -+#define SHT_MIPS_PACKAGE 0x70000007 -+#define SHT_MIPS_PACKSYM 0x70000008 -+#define SHT_MIPS_RELD 0x70000009 -+#define SHT_MIPS_IFACE 0x7000000b -+#define SHT_MIPS_CONTENT 0x7000000c -+#define SHT_MIPS_OPTIONS 0x7000000d /* Miscellaneous options. */ -+#define SHT_MIPS_SHDR 0x70000010 -+#define SHT_MIPS_FDESC 0x70000011 -+#define SHT_MIPS_EXTSYM 0x70000012 -+#define SHT_MIPS_DENSE 0x70000013 -+#define SHT_MIPS_PDESC 0x70000014 -+#define SHT_MIPS_LOCSYM 0x70000015 -+#define SHT_MIPS_AUXSYM 0x70000016 -+#define SHT_MIPS_OPTSYM 0x70000017 -+#define SHT_MIPS_LOCSTR 0x70000018 -+#define SHT_MIPS_LINE 0x70000019 -+#define SHT_MIPS_RFDESC 0x7000001a -+#define SHT_MIPS_DELTASYM 0x7000001b -+#define SHT_MIPS_DELTAINST 0x7000001c -+#define SHT_MIPS_DELTACLASS 0x7000001d -+#define SHT_MIPS_DWARF 0x7000001e /* DWARF debugging information. */ -+#define SHT_MIPS_DELTADECL 0x7000001f -+#define SHT_MIPS_SYMBOL_LIB 0x70000020 -+#define SHT_MIPS_EVENTS 0x70000021 /* Event section. */ -+#define SHT_MIPS_TRANSLATE 0x70000022 -+#define SHT_MIPS_PIXIE 0x70000023 -+#define SHT_MIPS_XLATE 0x70000024 -+#define SHT_MIPS_XLATE_DEBUG 0x70000025 -+#define SHT_MIPS_WHIRL 0x70000026 -+#define SHT_MIPS_EH_REGION 0x70000027 -+#define SHT_MIPS_XLATE_OLD 0x70000028 -+#define SHT_MIPS_PDR_EXCEPTION 0x70000029 -+ -+/* Legal values for sh_flags field of Elf32_Shdr. */ -+ -+#define SHF_MIPS_GPREL 0x10000000 /* Must be part of global data area */ -+#define SHF_MIPS_MERGE 0x20000000 -+#define SHF_MIPS_ADDR 0x40000000 -+#define SHF_MIPS_STRINGS 0x80000000 -+#define SHF_MIPS_NOSTRIP 0x08000000 -+#define SHF_MIPS_LOCAL 0x04000000 -+#define SHF_MIPS_NAMES 0x02000000 -+#define SHF_MIPS_NODUPE 0x01000000 -+ -+ -+/* Symbol tables. */ -+ -+/* MIPS specific values for `st_other'. */ -+#define STO_MIPS_DEFAULT 0x0 -+#define STO_MIPS_INTERNAL 0x1 -+#define STO_MIPS_HIDDEN 0x2 -+#define STO_MIPS_PROTECTED 0x3 -+#define STO_MIPS_PLT 0x8 -+#define STO_MIPS_SC_ALIGN_UNUSED 0xff -+ -+/* MIPS specific values for `st_info'. */ -+#define STB_MIPS_SPLIT_COMMON 13 -+ -+/* Entries found in sections of type SHT_MIPS_GPTAB. */ -+ -+typedef union -+{ -+ struct -+ { -+ Elf32_Word gt_current_g_value; /* -G value used for compilation */ -+ Elf32_Word gt_unused; /* Not used */ -+ } gt_header; /* First entry in section */ -+ struct -+ { -+ Elf32_Word gt_g_value; /* If this value were used for -G */ -+ Elf32_Word gt_bytes; /* This many bytes would be used */ -+ } gt_entry; /* Subsequent entries in section */ -+} Elf32_gptab; -+ -+/* Entry found in sections of type SHT_MIPS_REGINFO. */ -+ -+typedef struct -+{ -+ Elf32_Word ri_gprmask; /* General registers used */ -+ Elf32_Word ri_cprmask[4]; /* Coprocessor registers used */ -+ Elf32_Sword ri_gp_value; /* $gp register value */ -+} Elf32_RegInfo; -+ -+/* Entries found in sections of type SHT_MIPS_OPTIONS. */ -+ -+typedef struct -+{ -+ unsigned char kind; /* Determines interpretation of the -+ variable part of descriptor. */ -+ unsigned char size; /* Size of descriptor, including header. */ -+ Elf32_Section section; /* Section header index of section affected, -+ 0 for global options. */ -+ Elf32_Word info; /* Kind-specific information. */ -+} Elf_Options; -+ -+/* Values for `kind' field in Elf_Options. */ -+ -+#define ODK_NULL 0 /* Undefined. */ -+#define ODK_REGINFO 1 /* Register usage information. */ -+#define ODK_EXCEPTIONS 2 /* Exception processing options. */ -+#define ODK_PAD 3 /* Section padding options. */ -+#define ODK_HWPATCH 4 /* Hardware workarounds performed */ -+#define ODK_FILL 5 /* record the fill value used by the linker. */ -+#define ODK_TAGS 6 /* reserve space for desktop tools to write. */ -+#define ODK_HWAND 7 /* HW workarounds. 'AND' bits when merging. */ -+#define ODK_HWOR 8 /* HW workarounds. 'OR' bits when merging. */ -+ -+/* Values for `info' in Elf_Options for ODK_EXCEPTIONS entries. */ -+ -+#define OEX_FPU_MIN 0x1f /* FPE's which MUST be enabled. */ -+#define OEX_FPU_MAX 0x1f00 /* FPE's which MAY be enabled. */ -+#define OEX_PAGE0 0x10000 /* page zero must be mapped. */ -+#define OEX_SMM 0x20000 /* Force sequential memory mode? */ -+#define OEX_FPDBUG 0x40000 /* Force floating point debug mode? */ -+#define OEX_PRECISEFP OEX_FPDBUG -+#define OEX_DISMISS 0x80000 /* Dismiss invalid address faults? */ -+ -+#define OEX_FPU_INVAL 0x10 -+#define OEX_FPU_DIV0 0x08 -+#define OEX_FPU_OFLO 0x04 -+#define OEX_FPU_UFLO 0x02 -+#define OEX_FPU_INEX 0x01 -+ -+/* Masks for `info' in Elf_Options for an ODK_HWPATCH entry. */ -+ -+#define OHW_R4KEOP 0x1 /* R4000 end-of-page patch. */ -+#define OHW_R8KPFETCH 0x2 /* may need R8000 prefetch patch. */ -+#define OHW_R5KEOP 0x4 /* R5000 end-of-page patch. */ -+#define OHW_R5KCVTL 0x8 /* R5000 cvt.[ds].l bug. clean=1. */ -+ -+#define OPAD_PREFIX 0x1 -+#define OPAD_POSTFIX 0x2 -+#define OPAD_SYMBOL 0x4 -+ -+/* Entry found in `.options' section. */ -+ -+typedef struct -+{ -+ Elf32_Word hwp_flags1; /* Extra flags. */ -+ Elf32_Word hwp_flags2; /* Extra flags. */ -+} Elf_Options_Hw; -+ -+/* Masks for `info' in ElfOptions for ODK_HWAND and ODK_HWOR entries. */ -+ -+#define OHWA0_R4KEOP_CHECKED 0x00000001 -+#define OHWA1_R4KEOP_CLEAN 0x00000002 -+ -+/* MIPS relocs. */ -+ -+#define R_MIPS_NONE 0 /* No reloc */ -+#define R_MIPS_16 1 /* Direct 16 bit */ -+#define R_MIPS_32 2 /* Direct 32 bit */ -+#define R_MIPS_REL32 3 /* PC relative 32 bit */ -+#define R_MIPS_26 4 /* Direct 26 bit shifted */ -+#define R_MIPS_HI16 5 /* High 16 bit */ -+#define R_MIPS_LO16 6 /* Low 16 bit */ -+#define R_MIPS_GPREL16 7 /* GP relative 16 bit */ -+#define R_MIPS_LITERAL 8 /* 16 bit literal entry */ -+#define R_MIPS_GOT16 9 /* 16 bit GOT entry */ -+#define R_MIPS_PC16 10 /* PC relative 16 bit */ -+#define R_MIPS_CALL16 11 /* 16 bit GOT entry for function */ -+#define R_MIPS_GPREL32 12 /* GP relative 32 bit */ -+ -+#define R_MIPS_SHIFT5 16 -+#define R_MIPS_SHIFT6 17 -+#define R_MIPS_64 18 -+#define R_MIPS_GOT_DISP 19 -+#define R_MIPS_GOT_PAGE 20 -+#define R_MIPS_GOT_OFST 21 -+#define R_MIPS_GOT_HI16 22 -+#define R_MIPS_GOT_LO16 23 -+#define R_MIPS_SUB 24 -+#define R_MIPS_INSERT_A 25 -+#define R_MIPS_INSERT_B 26 -+#define R_MIPS_DELETE 27 -+#define R_MIPS_HIGHER 28 -+#define R_MIPS_HIGHEST 29 -+#define R_MIPS_CALL_HI16 30 -+#define R_MIPS_CALL_LO16 31 -+#define R_MIPS_SCN_DISP 32 -+#define R_MIPS_REL16 33 -+#define R_MIPS_ADD_IMMEDIATE 34 -+#define R_MIPS_PJUMP 35 -+#define R_MIPS_RELGOT 36 -+#define R_MIPS_JALR 37 -+#define R_MIPS_TLS_DTPMOD32 38 /* Module number 32 bit */ -+#define R_MIPS_TLS_DTPREL32 39 /* Module-relative offset 32 bit */ -+#define R_MIPS_TLS_DTPMOD64 40 /* Module number 64 bit */ -+#define R_MIPS_TLS_DTPREL64 41 /* Module-relative offset 64 bit */ -+#define R_MIPS_TLS_GD 42 /* 16 bit GOT offset for GD */ -+#define R_MIPS_TLS_LDM 43 /* 16 bit GOT offset for LDM */ -+#define R_MIPS_TLS_DTPREL_HI16 44 /* Module-relative offset, high 16 bits */ -+#define R_MIPS_TLS_DTPREL_LO16 45 /* Module-relative offset, low 16 bits */ -+#define R_MIPS_TLS_GOTTPREL 46 /* 16 bit GOT offset for IE */ -+#define R_MIPS_TLS_TPREL32 47 /* TP-relative offset, 32 bit */ -+#define R_MIPS_TLS_TPREL64 48 /* TP-relative offset, 64 bit */ -+#define R_MIPS_TLS_TPREL_HI16 49 /* TP-relative offset, high 16 bits */ -+#define R_MIPS_TLS_TPREL_LO16 50 /* TP-relative offset, low 16 bits */ -+#define R_MIPS_GLOB_DAT 51 -+#define R_MIPS_COPY 126 -+#define R_MIPS_JUMP_SLOT 127 -+/* Keep this the last entry. */ -+#define R_MIPS_NUM 128 -+ -+/* Legal values for p_type field of Elf32_Phdr. */ -+ -+#define PT_MIPS_REGINFO 0x70000000 /* Register usage information */ -+#define PT_MIPS_RTPROC 0x70000001 /* Runtime procedure table. */ -+#define PT_MIPS_OPTIONS 0x70000002 -+ -+/* Special program header types. */ -+ -+#define PF_MIPS_LOCAL 0x10000000 -+ -+/* Legal values for d_tag field of Elf32_Dyn. */ -+ -+#define DT_MIPS_RLD_VERSION 0x70000001 /* Runtime linker interface version */ -+#define DT_MIPS_TIME_STAMP 0x70000002 /* Timestamp */ -+#define DT_MIPS_ICHECKSUM 0x70000003 /* Checksum */ -+#define DT_MIPS_IVERSION 0x70000004 /* Version string (string tbl index) */ -+#define DT_MIPS_FLAGS 0x70000005 /* Flags */ -+#define DT_MIPS_BASE_ADDRESS 0x70000006 /* Base address */ -+#define DT_MIPS_MSYM 0x70000007 -+#define DT_MIPS_CONFLICT 0x70000008 /* Address of CONFLICT section */ -+#define DT_MIPS_LIBLIST 0x70000009 /* Address of LIBLIST section */ -+#define DT_MIPS_LOCAL_GOTNO 0x7000000a /* Number of local GOT entries */ -+#define DT_MIPS_CONFLICTNO 0x7000000b /* Number of CONFLICT entries */ -+#define DT_MIPS_LIBLISTNO 0x70000010 /* Number of LIBLIST entries */ -+#define DT_MIPS_SYMTABNO 0x70000011 /* Number of DYNSYM entries */ -+#define DT_MIPS_UNREFEXTNO 0x70000012 /* First external DYNSYM */ -+#define DT_MIPS_GOTSYM 0x70000013 /* First GOT entry in DYNSYM */ -+#define DT_MIPS_HIPAGENO 0x70000014 /* Number of GOT page table entries */ -+#define DT_MIPS_RLD_MAP 0x70000016 /* Address of run time loader map. */ -+#define DT_MIPS_DELTA_CLASS 0x70000017 /* Delta C++ class definition. */ -+#define DT_MIPS_DELTA_CLASS_NO 0x70000018 /* Number of entries in -+ DT_MIPS_DELTA_CLASS. */ -+#define DT_MIPS_DELTA_INSTANCE 0x70000019 /* Delta C++ class instances. */ -+#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a /* Number of entries in -+ DT_MIPS_DELTA_INSTANCE. */ -+#define DT_MIPS_DELTA_RELOC 0x7000001b /* Delta relocations. */ -+#define DT_MIPS_DELTA_RELOC_NO 0x7000001c /* Number of entries in -+ DT_MIPS_DELTA_RELOC. */ -+#define DT_MIPS_DELTA_SYM 0x7000001d /* Delta symbols that Delta -+ relocations refer to. */ -+#define DT_MIPS_DELTA_SYM_NO 0x7000001e /* Number of entries in -+ DT_MIPS_DELTA_SYM. */ -+#define DT_MIPS_DELTA_CLASSSYM 0x70000020 /* Delta symbols that hold the -+ class declaration. */ -+#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 /* Number of entries in -+ DT_MIPS_DELTA_CLASSSYM. */ -+#define DT_MIPS_CXX_FLAGS 0x70000022 /* Flags indicating for C++ flavor. */ -+#define DT_MIPS_PIXIE_INIT 0x70000023 -+#define DT_MIPS_SYMBOL_LIB 0x70000024 -+#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025 -+#define DT_MIPS_LOCAL_GOTIDX 0x70000026 -+#define DT_MIPS_HIDDEN_GOTIDX 0x70000027 -+#define DT_MIPS_PROTECTED_GOTIDX 0x70000028 -+#define DT_MIPS_OPTIONS 0x70000029 /* Address of .options. */ -+#define DT_MIPS_INTERFACE 0x7000002a /* Address of .interface. */ -+#define DT_MIPS_DYNSTR_ALIGN 0x7000002b -+#define DT_MIPS_INTERFACE_SIZE 0x7000002c /* Size of the .interface section. */ -+#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d /* Address of rld_text_rsolve -+ function stored in GOT. */ -+#define DT_MIPS_PERF_SUFFIX 0x7000002e /* Default suffix of dso to be added -+ by rld on dlopen() calls. */ -+#define DT_MIPS_COMPACT_SIZE 0x7000002f /* (O32)Size of compact rel section. */ -+#define DT_MIPS_GP_VALUE 0x70000030 /* GP value for aux GOTs. */ -+#define DT_MIPS_AUX_DYNAMIC 0x70000031 /* Address of aux .dynamic. */ -+/* The address of .got.plt in an executable using the new non-PIC ABI. */ -+#define DT_MIPS_PLTGOT 0x70000032 -+/* The base of the PLT in an executable using the new non-PIC ABI if that -+ PLT is writable. For a non-writable PLT, this is omitted or has a zero -+ value. */ -+#define DT_MIPS_RWPLT 0x70000034 -+#define DT_MIPS_NUM 0x35 -+ -+/* Legal values for DT_MIPS_FLAGS Elf32_Dyn entry. */ -+ -+#define RHF_NONE 0 /* No flags */ -+#define RHF_QUICKSTART (1 << 0) /* Use quickstart */ -+#define RHF_NOTPOT (1 << 1) /* Hash size not power of 2 */ -+#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2) /* Ignore LD_LIBRARY_PATH */ -+#define RHF_NO_MOVE (1 << 3) -+#define RHF_SGI_ONLY (1 << 4) -+#define RHF_GUARANTEE_INIT (1 << 5) -+#define RHF_DELTA_C_PLUS_PLUS (1 << 6) -+#define RHF_GUARANTEE_START_INIT (1 << 7) -+#define RHF_PIXIE (1 << 8) -+#define RHF_DEFAULT_DELAY_LOAD (1 << 9) -+#define RHF_REQUICKSTART (1 << 10) -+#define RHF_REQUICKSTARTED (1 << 11) -+#define RHF_CORD (1 << 12) -+#define RHF_NO_UNRES_UNDEF (1 << 13) -+#define RHF_RLD_ORDER_SAFE (1 << 14) -+ -+/* Entries found in sections of type SHT_MIPS_LIBLIST. */ -+ -+typedef struct -+{ -+ Elf32_Word l_name; /* Name (string table index) */ -+ Elf32_Word l_time_stamp; /* Timestamp */ -+ Elf32_Word l_checksum; /* Checksum */ -+ Elf32_Word l_version; /* Interface version */ -+ Elf32_Word l_flags; /* Flags */ -+} Elf32_Lib; -+ -+typedef struct -+{ -+ Elf64_Word l_name; /* Name (string table index) */ -+ Elf64_Word l_time_stamp; /* Timestamp */ -+ Elf64_Word l_checksum; /* Checksum */ -+ Elf64_Word l_version; /* Interface version */ -+ Elf64_Word l_flags; /* Flags */ -+} Elf64_Lib; -+ -+ -+/* Legal values for l_flags. */ -+ -+#define LL_NONE 0 -+#define LL_EXACT_MATCH (1 << 0) /* Require exact match */ -+#define LL_IGNORE_INT_VER (1 << 1) /* Ignore interface version */ -+#define LL_REQUIRE_MINOR (1 << 2) -+#define LL_EXPORTS (1 << 3) -+#define LL_DELAY_LOAD (1 << 4) -+#define LL_DELTA (1 << 5) -+ -+/* Entries found in sections of type SHT_MIPS_CONFLICT. */ -+ -+typedef Elf32_Addr Elf32_Conflict; -+ -+ -+/* HPPA specific definitions. */ -+ -+/* Legal values for e_flags field of Elf32_Ehdr. */ -+ -+#define EF_PARISC_TRAPNIL 0x00010000 /* Trap nil pointer dereference. */ -+#define EF_PARISC_EXT 0x00020000 /* Program uses arch. extensions. */ -+#define EF_PARISC_LSB 0x00040000 /* Program expects little endian. */ -+#define EF_PARISC_WIDE 0x00080000 /* Program expects wide mode. */ -+#define EF_PARISC_NO_KABP 0x00100000 /* No kernel assisted branch -+ prediction. */ -+#define EF_PARISC_LAZYSWAP 0x00400000 /* Allow lazy swapping. */ -+#define EF_PARISC_ARCH 0x0000ffff /* Architecture version. */ -+ -+/* Defined values for `e_flags & EF_PARISC_ARCH' are: */ -+ -+#define EFA_PARISC_1_0 0x020b /* PA-RISC 1.0 big-endian. */ -+#define EFA_PARISC_1_1 0x0210 /* PA-RISC 1.1 big-endian. */ -+#define EFA_PARISC_2_0 0x0214 /* PA-RISC 2.0 big-endian. */ -+ -+/* Additional section indeces. */ -+ -+#define SHN_PARISC_ANSI_COMMON 0xff00 /* Section for tenatively declared -+ symbols in ANSI C. */ -+#define SHN_PARISC_HUGE_COMMON 0xff01 /* Common blocks in huge model. */ -+ -+/* Legal values for sh_type field of Elf32_Shdr. */ -+ -+#define SHT_PARISC_EXT 0x70000000 /* Contains product specific ext. */ -+#define SHT_PARISC_UNWIND 0x70000001 /* Unwind information. */ -+#define SHT_PARISC_DOC 0x70000002 /* Debug info for optimized code. */ -+ -+/* Legal values for sh_flags field of Elf32_Shdr. */ -+ -+#define SHF_PARISC_SHORT 0x20000000 /* Section with short addressing. */ -+#define SHF_PARISC_HUGE 0x40000000 /* Section far from gp. */ -+#define SHF_PARISC_SBP 0x80000000 /* Static branch prediction code. */ -+ -+/* Legal values for ST_TYPE subfield of st_info (symbol type). */ -+ -+#define STT_PARISC_MILLICODE 13 /* Millicode function entry point. */ -+ -+#define STT_HP_OPAQUE (STT_LOOS + 0x1) -+#define STT_HP_STUB (STT_LOOS + 0x2) -+ -+/* HPPA relocs. */ -+ -+#define R_PARISC_NONE 0 /* No reloc. */ -+#define R_PARISC_DIR32 1 /* Direct 32-bit reference. */ -+#define R_PARISC_DIR21L 2 /* Left 21 bits of eff. address. */ -+#define R_PARISC_DIR17R 3 /* Right 17 bits of eff. address. */ -+#define R_PARISC_DIR17F 4 /* 17 bits of eff. address. */ -+#define R_PARISC_DIR14R 6 /* Right 14 bits of eff. address. */ -+#define R_PARISC_PCREL32 9 /* 32-bit rel. address. */ -+#define R_PARISC_PCREL21L 10 /* Left 21 bits of rel. address. */ -+#define R_PARISC_PCREL17R 11 /* Right 17 bits of rel. address. */ -+#define R_PARISC_PCREL17F 12 /* 17 bits of rel. address. */ -+#define R_PARISC_PCREL14R 14 /* Right 14 bits of rel. address. */ -+#define R_PARISC_DPREL21L 18 /* Left 21 bits of rel. address. */ -+#define R_PARISC_DPREL14R 22 /* Right 14 bits of rel. address. */ -+#define R_PARISC_GPREL21L 26 /* GP-relative, left 21 bits. */ -+#define R_PARISC_GPREL14R 30 /* GP-relative, right 14 bits. */ -+#define R_PARISC_LTOFF21L 34 /* LT-relative, left 21 bits. */ -+#define R_PARISC_LTOFF14R 38 /* LT-relative, right 14 bits. */ -+#define R_PARISC_SECREL32 41 /* 32 bits section rel. address. */ -+#define R_PARISC_SEGBASE 48 /* No relocation, set segment base. */ -+#define R_PARISC_SEGREL32 49 /* 32 bits segment rel. address. */ -+#define R_PARISC_PLTOFF21L 50 /* PLT rel. address, left 21 bits. */ -+#define R_PARISC_PLTOFF14R 54 /* PLT rel. address, right 14 bits. */ -+#define R_PARISC_LTOFF_FPTR32 57 /* 32 bits LT-rel. function pointer. */ -+#define R_PARISC_LTOFF_FPTR21L 58 /* LT-rel. fct ptr, left 21 bits. */ -+#define R_PARISC_LTOFF_FPTR14R 62 /* LT-rel. fct ptr, right 14 bits. */ -+#define R_PARISC_FPTR64 64 /* 64 bits function address. */ -+#define R_PARISC_PLABEL32 65 /* 32 bits function address. */ -+#define R_PARISC_PLABEL21L 66 /* Left 21 bits of fdesc address. */ -+#define R_PARISC_PLABEL14R 70 /* Right 14 bits of fdesc address. */ -+#define R_PARISC_PCREL64 72 /* 64 bits PC-rel. address. */ -+#define R_PARISC_PCREL22F 74 /* 22 bits PC-rel. address. */ -+#define R_PARISC_PCREL14WR 75 /* PC-rel. address, right 14 bits. */ -+#define R_PARISC_PCREL14DR 76 /* PC rel. address, right 14 bits. */ -+#define R_PARISC_PCREL16F 77 /* 16 bits PC-rel. address. */ -+#define R_PARISC_PCREL16WF 78 /* 16 bits PC-rel. address. */ -+#define R_PARISC_PCREL16DF 79 /* 16 bits PC-rel. address. */ -+#define R_PARISC_DIR64 80 /* 64 bits of eff. address. */ -+#define R_PARISC_DIR14WR 83 /* 14 bits of eff. address. */ -+#define R_PARISC_DIR14DR 84 /* 14 bits of eff. address. */ -+#define R_PARISC_DIR16F 85 /* 16 bits of eff. address. */ -+#define R_PARISC_DIR16WF 86 /* 16 bits of eff. address. */ -+#define R_PARISC_DIR16DF 87 /* 16 bits of eff. address. */ -+#define R_PARISC_GPREL64 88 /* 64 bits of GP-rel. address. */ -+#define R_PARISC_GPREL14WR 91 /* GP-rel. address, right 14 bits. */ -+#define R_PARISC_GPREL14DR 92 /* GP-rel. address, right 14 bits. */ -+#define R_PARISC_GPREL16F 93 /* 16 bits GP-rel. address. */ -+#define R_PARISC_GPREL16WF 94 /* 16 bits GP-rel. address. */ -+#define R_PARISC_GPREL16DF 95 /* 16 bits GP-rel. address. */ -+#define R_PARISC_LTOFF64 96 /* 64 bits LT-rel. address. */ -+#define R_PARISC_LTOFF14WR 99 /* LT-rel. address, right 14 bits. */ -+#define R_PARISC_LTOFF14DR 100 /* LT-rel. address, right 14 bits. */ -+#define R_PARISC_LTOFF16F 101 /* 16 bits LT-rel. address. */ -+#define R_PARISC_LTOFF16WF 102 /* 16 bits LT-rel. address. */ -+#define R_PARISC_LTOFF16DF 103 /* 16 bits LT-rel. address. */ -+#define R_PARISC_SECREL64 104 /* 64 bits section rel. address. */ -+#define R_PARISC_SEGREL64 112 /* 64 bits segment rel. address. */ -+#define R_PARISC_PLTOFF14WR 115 /* PLT-rel. address, right 14 bits. */ -+#define R_PARISC_PLTOFF14DR 116 /* PLT-rel. address, right 14 bits. */ -+#define R_PARISC_PLTOFF16F 117 /* 16 bits LT-rel. address. */ -+#define R_PARISC_PLTOFF16WF 118 /* 16 bits PLT-rel. address. */ -+#define R_PARISC_PLTOFF16DF 119 /* 16 bits PLT-rel. address. */ -+#define R_PARISC_LTOFF_FPTR64 120 /* 64 bits LT-rel. function ptr. */ -+#define R_PARISC_LTOFF_FPTR14WR 123 /* LT-rel. fct. ptr., right 14 bits. */ -+#define R_PARISC_LTOFF_FPTR14DR 124 /* LT-rel. fct. ptr., right 14 bits. */ -+#define R_PARISC_LTOFF_FPTR16F 125 /* 16 bits LT-rel. function ptr. */ -+#define R_PARISC_LTOFF_FPTR16WF 126 /* 16 bits LT-rel. function ptr. */ -+#define R_PARISC_LTOFF_FPTR16DF 127 /* 16 bits LT-rel. function ptr. */ -+#define R_PARISC_LORESERVE 128 -+#define R_PARISC_COPY 128 /* Copy relocation. */ -+#define R_PARISC_IPLT 129 /* Dynamic reloc, imported PLT */ -+#define R_PARISC_EPLT 130 /* Dynamic reloc, exported PLT */ -+#define R_PARISC_TPREL32 153 /* 32 bits TP-rel. address. */ -+#define R_PARISC_TPREL21L 154 /* TP-rel. address, left 21 bits. */ -+#define R_PARISC_TPREL14R 158 /* TP-rel. address, right 14 bits. */ -+#define R_PARISC_LTOFF_TP21L 162 /* LT-TP-rel. address, left 21 bits. */ -+#define R_PARISC_LTOFF_TP14R 166 /* LT-TP-rel. address, right 14 bits.*/ -+#define R_PARISC_LTOFF_TP14F 167 /* 14 bits LT-TP-rel. address. */ -+#define R_PARISC_TPREL64 216 /* 64 bits TP-rel. address. */ -+#define R_PARISC_TPREL14WR 219 /* TP-rel. address, right 14 bits. */ -+#define R_PARISC_TPREL14DR 220 /* TP-rel. address, right 14 bits. */ -+#define R_PARISC_TPREL16F 221 /* 16 bits TP-rel. address. */ -+#define R_PARISC_TPREL16WF 222 /* 16 bits TP-rel. address. */ -+#define R_PARISC_TPREL16DF 223 /* 16 bits TP-rel. address. */ -+#define R_PARISC_LTOFF_TP64 224 /* 64 bits LT-TP-rel. address. */ -+#define R_PARISC_LTOFF_TP14WR 227 /* LT-TP-rel. address, right 14 bits.*/ -+#define R_PARISC_LTOFF_TP14DR 228 /* LT-TP-rel. address, right 14 bits.*/ -+#define R_PARISC_LTOFF_TP16F 229 /* 16 bits LT-TP-rel. address. */ -+#define R_PARISC_LTOFF_TP16WF 230 /* 16 bits LT-TP-rel. address. */ -+#define R_PARISC_LTOFF_TP16DF 231 /* 16 bits LT-TP-rel. address. */ -+#define R_PARISC_GNU_VTENTRY 232 -+#define R_PARISC_GNU_VTINHERIT 233 -+#define R_PARISC_TLS_GD21L 234 /* GD 21-bit left. */ -+#define R_PARISC_TLS_GD14R 235 /* GD 14-bit right. */ -+#define R_PARISC_TLS_GDCALL 236 /* GD call to __t_g_a. */ -+#define R_PARISC_TLS_LDM21L 237 /* LD module 21-bit left. */ -+#define R_PARISC_TLS_LDM14R 238 /* LD module 14-bit right. */ -+#define R_PARISC_TLS_LDMCALL 239 /* LD module call to __t_g_a. */ -+#define R_PARISC_TLS_LDO21L 240 /* LD offset 21-bit left. */ -+#define R_PARISC_TLS_LDO14R 241 /* LD offset 14-bit right. */ -+#define R_PARISC_TLS_DTPMOD32 242 /* DTP module 32-bit. */ -+#define R_PARISC_TLS_DTPMOD64 243 /* DTP module 64-bit. */ -+#define R_PARISC_TLS_DTPOFF32 244 /* DTP offset 32-bit. */ -+#define R_PARISC_TLS_DTPOFF64 245 /* DTP offset 32-bit. */ -+#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L -+#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R -+#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L -+#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R -+#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32 -+#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64 -+#define R_PARISC_HIRESERVE 255 -+ -+/* Legal values for p_type field of Elf32_Phdr/Elf64_Phdr. */ -+ -+#define PT_HP_TLS (PT_LOOS + 0x0) -+#define PT_HP_CORE_NONE (PT_LOOS + 0x1) -+#define PT_HP_CORE_VERSION (PT_LOOS + 0x2) -+#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3) -+#define PT_HP_CORE_COMM (PT_LOOS + 0x4) -+#define PT_HP_CORE_PROC (PT_LOOS + 0x5) -+#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6) -+#define PT_HP_CORE_STACK (PT_LOOS + 0x7) -+#define PT_HP_CORE_SHM (PT_LOOS + 0x8) -+#define PT_HP_CORE_MMF (PT_LOOS + 0x9) -+#define PT_HP_PARALLEL (PT_LOOS + 0x10) -+#define PT_HP_FASTBIND (PT_LOOS + 0x11) -+#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12) -+#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13) -+#define PT_HP_STACK (PT_LOOS + 0x14) -+ -+#define PT_PARISC_ARCHEXT 0x70000000 -+#define PT_PARISC_UNWIND 0x70000001 -+ -+/* Legal values for p_flags field of Elf32_Phdr/Elf64_Phdr. */ -+ -+#define PF_PARISC_SBP 0x08000000 -+ -+#define PF_HP_PAGE_SIZE 0x00100000 -+#define PF_HP_FAR_SHARED 0x00200000 -+#define PF_HP_NEAR_SHARED 0x00400000 -+#define PF_HP_CODE 0x01000000 -+#define PF_HP_MODIFY 0x02000000 -+#define PF_HP_LAZYSWAP 0x04000000 -+#define PF_HP_SBP 0x08000000 -+ -+ -+/* Alpha specific definitions. */ -+ -+/* Legal values for e_flags field of Elf64_Ehdr. */ -+ -+#define EF_ALPHA_32BIT 1 /* All addresses must be < 2GB. */ -+#define EF_ALPHA_CANRELAX 2 /* Relocations for relaxing exist. */ -+ -+/* Legal values for sh_type field of Elf64_Shdr. */ -+ -+/* These two are primerily concerned with ECOFF debugging info. */ -+#define SHT_ALPHA_DEBUG 0x70000001 -+#define SHT_ALPHA_REGINFO 0x70000002 -+ -+/* Legal values for sh_flags field of Elf64_Shdr. */ -+ -+#define SHF_ALPHA_GPREL 0x10000000 -+ -+/* Legal values for st_other field of Elf64_Sym. */ -+#define STO_ALPHA_NOPV 0x80 /* No PV required. */ -+#define STO_ALPHA_STD_GPLOAD 0x88 /* PV only used for initial ldgp. */ -+ -+/* Alpha relocs. */ -+ -+#define R_ALPHA_NONE 0 /* No reloc */ -+#define R_ALPHA_REFLONG 1 /* Direct 32 bit */ -+#define R_ALPHA_REFQUAD 2 /* Direct 64 bit */ -+#define R_ALPHA_GPREL32 3 /* GP relative 32 bit */ -+#define R_ALPHA_LITERAL 4 /* GP relative 16 bit w/optimization */ -+#define R_ALPHA_LITUSE 5 /* Optimization hint for LITERAL */ -+#define R_ALPHA_GPDISP 6 /* Add displacement to GP */ -+#define R_ALPHA_BRADDR 7 /* PC+4 relative 23 bit shifted */ -+#define R_ALPHA_HINT 8 /* PC+4 relative 16 bit shifted */ -+#define R_ALPHA_SREL16 9 /* PC relative 16 bit */ -+#define R_ALPHA_SREL32 10 /* PC relative 32 bit */ -+#define R_ALPHA_SREL64 11 /* PC relative 64 bit */ -+#define R_ALPHA_GPRELHIGH 17 /* GP relative 32 bit, high 16 bits */ -+#define R_ALPHA_GPRELLOW 18 /* GP relative 32 bit, low 16 bits */ -+#define R_ALPHA_GPREL16 19 /* GP relative 16 bit */ -+#define R_ALPHA_COPY 24 /* Copy symbol at runtime */ -+#define R_ALPHA_GLOB_DAT 25 /* Create GOT entry */ -+#define R_ALPHA_JMP_SLOT 26 /* Create PLT entry */ -+#define R_ALPHA_RELATIVE 27 /* Adjust by program base */ -+#define R_ALPHA_TLS_GD_HI 28 -+#define R_ALPHA_TLSGD 29 -+#define R_ALPHA_TLS_LDM 30 -+#define R_ALPHA_DTPMOD64 31 -+#define R_ALPHA_GOTDTPREL 32 -+#define R_ALPHA_DTPREL64 33 -+#define R_ALPHA_DTPRELHI 34 -+#define R_ALPHA_DTPRELLO 35 -+#define R_ALPHA_DTPREL16 36 -+#define R_ALPHA_GOTTPREL 37 -+#define R_ALPHA_TPREL64 38 -+#define R_ALPHA_TPRELHI 39 -+#define R_ALPHA_TPRELLO 40 -+#define R_ALPHA_TPREL16 41 -+/* Keep this the last entry. */ -+#define R_ALPHA_NUM 46 -+ -+/* Magic values of the LITUSE relocation addend. */ -+#define LITUSE_ALPHA_ADDR 0 -+#define LITUSE_ALPHA_BASE 1 -+#define LITUSE_ALPHA_BYTOFF 2 -+#define LITUSE_ALPHA_JSR 3 -+#define LITUSE_ALPHA_TLS_GD 4 -+#define LITUSE_ALPHA_TLS_LDM 5 -+ -+/* Legal values for d_tag of Elf64_Dyn. */ -+#define DT_ALPHA_PLTRO (DT_LOPROC + 0) -+#define DT_ALPHA_NUM 1 -+ -+/* PowerPC specific declarations */ -+ -+/* Values for Elf32/64_Ehdr.e_flags. */ -+#define EF_PPC_EMB 0x80000000 /* PowerPC embedded flag */ -+ -+/* Cygnus local bits below */ -+#define EF_PPC_RELOCATABLE 0x00010000 /* PowerPC -mrelocatable flag*/ -+#define EF_PPC_RELOCATABLE_LIB 0x00008000 /* PowerPC -mrelocatable-lib -+ flag */ -+ -+/* PowerPC relocations defined by the ABIs */ -+#define R_PPC_NONE 0 -+#define R_PPC_ADDR32 1 /* 32bit absolute address */ -+#define R_PPC_ADDR24 2 /* 26bit address, 2 bits ignored. */ -+#define R_PPC_ADDR16 3 /* 16bit absolute address */ -+#define R_PPC_ADDR16_LO 4 /* lower 16bit of absolute address */ -+#define R_PPC_ADDR16_HI 5 /* high 16bit of absolute address */ -+#define R_PPC_ADDR16_HA 6 /* adjusted high 16bit */ -+#define R_PPC_ADDR14 7 /* 16bit address, 2 bits ignored */ -+#define R_PPC_ADDR14_BRTAKEN 8 -+#define R_PPC_ADDR14_BRNTAKEN 9 -+#define R_PPC_REL24 10 /* PC relative 26 bit */ -+#define R_PPC_REL14 11 /* PC relative 16 bit */ -+#define R_PPC_REL14_BRTAKEN 12 -+#define R_PPC_REL14_BRNTAKEN 13 -+#define R_PPC_GOT16 14 -+#define R_PPC_GOT16_LO 15 -+#define R_PPC_GOT16_HI 16 -+#define R_PPC_GOT16_HA 17 -+#define R_PPC_PLTREL24 18 -+#define R_PPC_COPY 19 -+#define R_PPC_GLOB_DAT 20 -+#define R_PPC_JMP_SLOT 21 -+#define R_PPC_RELATIVE 22 -+#define R_PPC_LOCAL24PC 23 -+#define R_PPC_UADDR32 24 -+#define R_PPC_UADDR16 25 -+#define R_PPC_REL32 26 -+#define R_PPC_PLT32 27 -+#define R_PPC_PLTREL32 28 -+#define R_PPC_PLT16_LO 29 -+#define R_PPC_PLT16_HI 30 -+#define R_PPC_PLT16_HA 31 -+#define R_PPC_SDAREL16 32 -+#define R_PPC_SECTOFF 33 -+#define R_PPC_SECTOFF_LO 34 -+#define R_PPC_SECTOFF_HI 35 -+#define R_PPC_SECTOFF_HA 36 -+ -+/* PowerPC relocations defined for the TLS access ABI. */ -+#define R_PPC_TLS 67 /* none (sym+add)@tls */ -+#define R_PPC_DTPMOD32 68 /* word32 (sym+add)@dtpmod */ -+#define R_PPC_TPREL16 69 /* half16* (sym+add)@tprel */ -+#define R_PPC_TPREL16_LO 70 /* half16 (sym+add)@tprel@l */ -+#define R_PPC_TPREL16_HI 71 /* half16 (sym+add)@tprel@h */ -+#define R_PPC_TPREL16_HA 72 /* half16 (sym+add)@tprel@ha */ -+#define R_PPC_TPREL32 73 /* word32 (sym+add)@tprel */ -+#define R_PPC_DTPREL16 74 /* half16* (sym+add)@dtprel */ -+#define R_PPC_DTPREL16_LO 75 /* half16 (sym+add)@dtprel@l */ -+#define R_PPC_DTPREL16_HI 76 /* half16 (sym+add)@dtprel@h */ -+#define R_PPC_DTPREL16_HA 77 /* half16 (sym+add)@dtprel@ha */ -+#define R_PPC_DTPREL32 78 /* word32 (sym+add)@dtprel */ -+#define R_PPC_GOT_TLSGD16 79 /* half16* (sym+add)@got@tlsgd */ -+#define R_PPC_GOT_TLSGD16_LO 80 /* half16 (sym+add)@got@tlsgd@l */ -+#define R_PPC_GOT_TLSGD16_HI 81 /* half16 (sym+add)@got@tlsgd@h */ -+#define R_PPC_GOT_TLSGD16_HA 82 /* half16 (sym+add)@got@tlsgd@ha */ -+#define R_PPC_GOT_TLSLD16 83 /* half16* (sym+add)@got@tlsld */ -+#define R_PPC_GOT_TLSLD16_LO 84 /* half16 (sym+add)@got@tlsld@l */ -+#define R_PPC_GOT_TLSLD16_HI 85 /* half16 (sym+add)@got@tlsld@h */ -+#define R_PPC_GOT_TLSLD16_HA 86 /* half16 (sym+add)@got@tlsld@ha */ -+#define R_PPC_GOT_TPREL16 87 /* half16* (sym+add)@got@tprel */ -+#define R_PPC_GOT_TPREL16_LO 88 /* half16 (sym+add)@got@tprel@l */ -+#define R_PPC_GOT_TPREL16_HI 89 /* half16 (sym+add)@got@tprel@h */ -+#define R_PPC_GOT_TPREL16_HA 90 /* half16 (sym+add)@got@tprel@ha */ -+#define R_PPC_GOT_DTPREL16 91 /* half16* (sym+add)@got@dtprel */ -+#define R_PPC_GOT_DTPREL16_LO 92 /* half16* (sym+add)@got@dtprel@l */ -+#define R_PPC_GOT_DTPREL16_HI 93 /* half16* (sym+add)@got@dtprel@h */ -+#define R_PPC_GOT_DTPREL16_HA 94 /* half16* (sym+add)@got@dtprel@ha */ -+ -+/* The remaining relocs are from the Embedded ELF ABI, and are not -+ in the SVR4 ELF ABI. */ -+#define R_PPC_EMB_NADDR32 101 -+#define R_PPC_EMB_NADDR16 102 -+#define R_PPC_EMB_NADDR16_LO 103 -+#define R_PPC_EMB_NADDR16_HI 104 -+#define R_PPC_EMB_NADDR16_HA 105 -+#define R_PPC_EMB_SDAI16 106 -+#define R_PPC_EMB_SDA2I16 107 -+#define R_PPC_EMB_SDA2REL 108 -+#define R_PPC_EMB_SDA21 109 /* 16 bit offset in SDA */ -+#define R_PPC_EMB_MRKREF 110 -+#define R_PPC_EMB_RELSEC16 111 -+#define R_PPC_EMB_RELST_LO 112 -+#define R_PPC_EMB_RELST_HI 113 -+#define R_PPC_EMB_RELST_HA 114 -+#define R_PPC_EMB_BIT_FLD 115 -+#define R_PPC_EMB_RELSDA 116 /* 16 bit relative offset in SDA */ -+ -+/* Diab tool relocations. */ -+#define R_PPC_DIAB_SDA21_LO 180 /* like EMB_SDA21, but lower 16 bit */ -+#define R_PPC_DIAB_SDA21_HI 181 /* like EMB_SDA21, but high 16 bit */ -+#define R_PPC_DIAB_SDA21_HA 182 /* like EMB_SDA21, adjusted high 16 */ -+#define R_PPC_DIAB_RELSDA_LO 183 /* like EMB_RELSDA, but lower 16 bit */ -+#define R_PPC_DIAB_RELSDA_HI 184 /* like EMB_RELSDA, but high 16 bit */ -+#define R_PPC_DIAB_RELSDA_HA 185 /* like EMB_RELSDA, adjusted high 16 */ -+ -+/* GNU extension to support local ifunc. */ -+#define R_PPC_IRELATIVE 248 -+ -+/* GNU relocs used in PIC code sequences. */ -+#define R_PPC_REL16 249 /* half16 (sym+add-.) */ -+#define R_PPC_REL16_LO 250 /* half16 (sym+add-.)@l */ -+#define R_PPC_REL16_HI 251 /* half16 (sym+add-.)@h */ -+#define R_PPC_REL16_HA 252 /* half16 (sym+add-.)@ha */ -+ -+/* This is a phony reloc to handle any old fashioned TOC16 references -+ that may still be in object files. */ -+#define R_PPC_TOC16 255 -+ -+/* PowerPC specific values for the Dyn d_tag field. */ -+#define DT_PPC_GOT (DT_LOPROC + 0) -+#define DT_PPC_NUM 1 -+ -+/* PowerPC64 relocations defined by the ABIs */ -+#define R_PPC64_NONE R_PPC_NONE -+#define R_PPC64_ADDR32 R_PPC_ADDR32 /* 32bit absolute address */ -+#define R_PPC64_ADDR24 R_PPC_ADDR24 /* 26bit address, word aligned */ -+#define R_PPC64_ADDR16 R_PPC_ADDR16 /* 16bit absolute address */ -+#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO /* lower 16bits of address */ -+#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI /* high 16bits of address. */ -+#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA /* adjusted high 16bits. */ -+#define R_PPC64_ADDR14 R_PPC_ADDR14 /* 16bit address, word aligned */ -+#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN -+#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN -+#define R_PPC64_REL24 R_PPC_REL24 /* PC-rel. 26 bit, word aligned */ -+#define R_PPC64_REL14 R_PPC_REL14 /* PC relative 16 bit */ -+#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN -+#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN -+#define R_PPC64_GOT16 R_PPC_GOT16 -+#define R_PPC64_GOT16_LO R_PPC_GOT16_LO -+#define R_PPC64_GOT16_HI R_PPC_GOT16_HI -+#define R_PPC64_GOT16_HA R_PPC_GOT16_HA -+ -+#define R_PPC64_COPY R_PPC_COPY -+#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT -+#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT -+#define R_PPC64_RELATIVE R_PPC_RELATIVE -+ -+#define R_PPC64_UADDR32 R_PPC_UADDR32 -+#define R_PPC64_UADDR16 R_PPC_UADDR16 -+#define R_PPC64_REL32 R_PPC_REL32 -+#define R_PPC64_PLT32 R_PPC_PLT32 -+#define R_PPC64_PLTREL32 R_PPC_PLTREL32 -+#define R_PPC64_PLT16_LO R_PPC_PLT16_LO -+#define R_PPC64_PLT16_HI R_PPC_PLT16_HI -+#define R_PPC64_PLT16_HA R_PPC_PLT16_HA -+ -+#define R_PPC64_SECTOFF R_PPC_SECTOFF -+#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO -+#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI -+#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA -+#define R_PPC64_ADDR30 37 /* word30 (S + A - P) >> 2 */ -+#define R_PPC64_ADDR64 38 /* doubleword64 S + A */ -+#define R_PPC64_ADDR16_HIGHER 39 /* half16 #higher(S + A) */ -+#define R_PPC64_ADDR16_HIGHERA 40 /* half16 #highera(S + A) */ -+#define R_PPC64_ADDR16_HIGHEST 41 /* half16 #highest(S + A) */ -+#define R_PPC64_ADDR16_HIGHESTA 42 /* half16 #highesta(S + A) */ -+#define R_PPC64_UADDR64 43 /* doubleword64 S + A */ -+#define R_PPC64_REL64 44 /* doubleword64 S + A - P */ -+#define R_PPC64_PLT64 45 /* doubleword64 L + A */ -+#define R_PPC64_PLTREL64 46 /* doubleword64 L + A - P */ -+#define R_PPC64_TOC16 47 /* half16* S + A - .TOC */ -+#define R_PPC64_TOC16_LO 48 /* half16 #lo(S + A - .TOC.) */ -+#define R_PPC64_TOC16_HI 49 /* half16 #hi(S + A - .TOC.) */ -+#define R_PPC64_TOC16_HA 50 /* half16 #ha(S + A - .TOC.) */ -+#define R_PPC64_TOC 51 /* doubleword64 .TOC */ -+#define R_PPC64_PLTGOT16 52 /* half16* M + A */ -+#define R_PPC64_PLTGOT16_LO 53 /* half16 #lo(M + A) */ -+#define R_PPC64_PLTGOT16_HI 54 /* half16 #hi(M + A) */ -+#define R_PPC64_PLTGOT16_HA 55 /* half16 #ha(M + A) */ -+ -+#define R_PPC64_ADDR16_DS 56 /* half16ds* (S + A) >> 2 */ -+#define R_PPC64_ADDR16_LO_DS 57 /* half16ds #lo(S + A) >> 2 */ -+#define R_PPC64_GOT16_DS 58 /* half16ds* (G + A) >> 2 */ -+#define R_PPC64_GOT16_LO_DS 59 /* half16ds #lo(G + A) >> 2 */ -+#define R_PPC64_PLT16_LO_DS 60 /* half16ds #lo(L + A) >> 2 */ -+#define R_PPC64_SECTOFF_DS 61 /* half16ds* (R + A) >> 2 */ -+#define R_PPC64_SECTOFF_LO_DS 62 /* half16ds #lo(R + A) >> 2 */ -+#define R_PPC64_TOC16_DS 63 /* half16ds* (S + A - .TOC.) >> 2 */ -+#define R_PPC64_TOC16_LO_DS 64 /* half16ds #lo(S + A - .TOC.) >> 2 */ -+#define R_PPC64_PLTGOT16_DS 65 /* half16ds* (M + A) >> 2 */ -+#define R_PPC64_PLTGOT16_LO_DS 66 /* half16ds #lo(M + A) >> 2 */ -+ -+/* PowerPC64 relocations defined for the TLS access ABI. */ -+#define R_PPC64_TLS 67 /* none (sym+add)@tls */ -+#define R_PPC64_DTPMOD64 68 /* doubleword64 (sym+add)@dtpmod */ -+#define R_PPC64_TPREL16 69 /* half16* (sym+add)@tprel */ -+#define R_PPC64_TPREL16_LO 70 /* half16 (sym+add)@tprel@l */ -+#define R_PPC64_TPREL16_HI 71 /* half16 (sym+add)@tprel@h */ -+#define R_PPC64_TPREL16_HA 72 /* half16 (sym+add)@tprel@ha */ -+#define R_PPC64_TPREL64 73 /* doubleword64 (sym+add)@tprel */ -+#define R_PPC64_DTPREL16 74 /* half16* (sym+add)@dtprel */ -+#define R_PPC64_DTPREL16_LO 75 /* half16 (sym+add)@dtprel@l */ -+#define R_PPC64_DTPREL16_HI 76 /* half16 (sym+add)@dtprel@h */ -+#define R_PPC64_DTPREL16_HA 77 /* half16 (sym+add)@dtprel@ha */ -+#define R_PPC64_DTPREL64 78 /* doubleword64 (sym+add)@dtprel */ -+#define R_PPC64_GOT_TLSGD16 79 /* half16* (sym+add)@got@tlsgd */ -+#define R_PPC64_GOT_TLSGD16_LO 80 /* half16 (sym+add)@got@tlsgd@l */ -+#define R_PPC64_GOT_TLSGD16_HI 81 /* half16 (sym+add)@got@tlsgd@h */ -+#define R_PPC64_GOT_TLSGD16_HA 82 /* half16 (sym+add)@got@tlsgd@ha */ -+#define R_PPC64_GOT_TLSLD16 83 /* half16* (sym+add)@got@tlsld */ -+#define R_PPC64_GOT_TLSLD16_LO 84 /* half16 (sym+add)@got@tlsld@l */ -+#define R_PPC64_GOT_TLSLD16_HI 85 /* half16 (sym+add)@got@tlsld@h */ -+#define R_PPC64_GOT_TLSLD16_HA 86 /* half16 (sym+add)@got@tlsld@ha */ -+#define R_PPC64_GOT_TPREL16_DS 87 /* half16ds* (sym+add)@got@tprel */ -+#define R_PPC64_GOT_TPREL16_LO_DS 88 /* half16ds (sym+add)@got@tprel@l */ -+#define R_PPC64_GOT_TPREL16_HI 89 /* half16 (sym+add)@got@tprel@h */ -+#define R_PPC64_GOT_TPREL16_HA 90 /* half16 (sym+add)@got@tprel@ha */ -+#define R_PPC64_GOT_DTPREL16_DS 91 /* half16ds* (sym+add)@got@dtprel */ -+#define R_PPC64_GOT_DTPREL16_LO_DS 92 /* half16ds (sym+add)@got@dtprel@l */ -+#define R_PPC64_GOT_DTPREL16_HI 93 /* half16 (sym+add)@got@dtprel@h */ -+#define R_PPC64_GOT_DTPREL16_HA 94 /* half16 (sym+add)@got@dtprel@ha */ -+#define R_PPC64_TPREL16_DS 95 /* half16ds* (sym+add)@tprel */ -+#define R_PPC64_TPREL16_LO_DS 96 /* half16ds (sym+add)@tprel@l */ -+#define R_PPC64_TPREL16_HIGHER 97 /* half16 (sym+add)@tprel@higher */ -+#define R_PPC64_TPREL16_HIGHERA 98 /* half16 (sym+add)@tprel@highera */ -+#define R_PPC64_TPREL16_HIGHEST 99 /* half16 (sym+add)@tprel@highest */ -+#define R_PPC64_TPREL16_HIGHESTA 100 /* half16 (sym+add)@tprel@highesta */ -+#define R_PPC64_DTPREL16_DS 101 /* half16ds* (sym+add)@dtprel */ -+#define R_PPC64_DTPREL16_LO_DS 102 /* half16ds (sym+add)@dtprel@l */ -+#define R_PPC64_DTPREL16_HIGHER 103 /* half16 (sym+add)@dtprel@higher */ -+#define R_PPC64_DTPREL16_HIGHERA 104 /* half16 (sym+add)@dtprel@highera */ -+#define R_PPC64_DTPREL16_HIGHEST 105 /* half16 (sym+add)@dtprel@highest */ -+#define R_PPC64_DTPREL16_HIGHESTA 106 /* half16 (sym+add)@dtprel@highesta */ -+ -+/* GNU extension to support local ifunc. */ -+#define R_PPC64_JMP_IREL 247 -+#define R_PPC64_IRELATIVE 248 -+#define R_PPC64_REL16 249 /* half16 (sym+add-.) */ -+#define R_PPC64_REL16_LO 250 /* half16 (sym+add-.)@l */ -+#define R_PPC64_REL16_HI 251 /* half16 (sym+add-.)@h */ -+#define R_PPC64_REL16_HA 252 /* half16 (sym+add-.)@ha */ -+ -+/* PowerPC64 specific values for the Dyn d_tag field. */ -+#define DT_PPC64_GLINK (DT_LOPROC + 0) -+#define DT_PPC64_OPD (DT_LOPROC + 1) -+#define DT_PPC64_OPDSZ (DT_LOPROC + 2) -+#define DT_PPC64_NUM 3 -+ -+ -+/* ARM specific declarations */ -+ -+/* Processor specific flags for the ELF header e_flags field. */ -+#define EF_ARM_RELEXEC 0x01 -+#define EF_ARM_HASENTRY 0x02 -+#define EF_ARM_INTERWORK 0x04 -+#define EF_ARM_APCS_26 0x08 -+#define EF_ARM_APCS_FLOAT 0x10 -+#define EF_ARM_PIC 0x20 -+#define EF_ARM_ALIGN8 0x40 /* 8-bit structure alignment is in use */ -+#define EF_ARM_NEW_ABI 0x80 -+#define EF_ARM_OLD_ABI 0x100 -+#define EF_ARM_SOFT_FLOAT 0x200 -+#define EF_ARM_VFP_FLOAT 0x400 -+#define EF_ARM_MAVERICK_FLOAT 0x800 -+ -+ -+/* Other constants defined in the ARM ELF spec. version B-01. */ -+/* NB. These conflict with values defined above. */ -+#define EF_ARM_SYMSARESORTED 0x04 -+#define EF_ARM_DYNSYMSUSESEGIDX 0x08 -+#define EF_ARM_MAPSYMSFIRST 0x10 -+#define EF_ARM_EABIMASK 0XFF000000 -+ -+/* Constants defined in AAELF. */ -+#define EF_ARM_BE8 0x00800000 -+#define EF_ARM_LE8 0x00400000 -+ -+#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK) -+#define EF_ARM_EABI_UNKNOWN 0x00000000 -+#define EF_ARM_EABI_VER1 0x01000000 -+#define EF_ARM_EABI_VER2 0x02000000 -+#define EF_ARM_EABI_VER3 0x03000000 -+#define EF_ARM_EABI_VER4 0x04000000 -+#define EF_ARM_EABI_VER5 0x05000000 -+ -+/* Additional symbol types for Thumb. */ -+#define STT_ARM_TFUNC STT_LOPROC /* A Thumb function. */ -+#define STT_ARM_16BIT STT_HIPROC /* A Thumb label. */ -+ -+/* ARM-specific values for sh_flags */ -+#define SHF_ARM_ENTRYSECT 0x10000000 /* Section contains an entry point */ -+#define SHF_ARM_COMDEF 0x80000000 /* Section may be multiply defined -+ in the input to a link step. */ -+ -+/* ARM-specific program header flags */ -+#define PF_ARM_SB 0x10000000 /* Segment contains the location -+ addressed by the static base. */ -+#define PF_ARM_PI 0x20000000 /* Position-independent segment. */ -+#define PF_ARM_ABS 0x40000000 /* Absolute segment. */ -+ -+/* Processor specific values for the Phdr p_type field. */ -+#define PT_ARM_EXIDX (PT_LOPROC + 1) /* ARM unwind segment. */ -+ -+/* Processor specific values for the Shdr sh_type field. */ -+#define SHT_ARM_EXIDX (SHT_LOPROC + 1) /* ARM unwind section. */ -+#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) /* Preemption details. */ -+#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3) /* ARM attributes section. */ -+ -+ -+/* ARM relocs. */ -+ -+#define R_ARM_NONE 0 /* No reloc */ -+#define R_ARM_PC24 1 /* PC relative 26 bit branch */ -+#define R_ARM_ABS32 2 /* Direct 32 bit */ -+#define R_ARM_REL32 3 /* PC relative 32 bit */ -+#define R_ARM_PC13 4 -+#define R_ARM_ABS16 5 /* Direct 16 bit */ -+#define R_ARM_ABS12 6 /* Direct 12 bit */ -+#define R_ARM_THM_ABS5 7 -+#define R_ARM_ABS8 8 /* Direct 8 bit */ -+#define R_ARM_SBREL32 9 -+#define R_ARM_THM_PC22 10 -+#define R_ARM_THM_PC8 11 -+#define R_ARM_AMP_VCALL9 12 -+#define R_ARM_SWI24 13 /* Obsolete static relocation. */ -+#define R_ARM_TLS_DESC 13 /* Dynamic relocation. */ -+#define R_ARM_THM_SWI8 14 -+#define R_ARM_XPC25 15 -+#define R_ARM_THM_XPC22 16 -+#define R_ARM_TLS_DTPMOD32 17 /* ID of module containing symbol */ -+#define R_ARM_TLS_DTPOFF32 18 /* Offset in TLS block */ -+#define R_ARM_TLS_TPOFF32 19 /* Offset in static TLS block */ -+#define R_ARM_COPY 20 /* Copy symbol at runtime */ -+#define R_ARM_GLOB_DAT 21 /* Create GOT entry */ -+#define R_ARM_JUMP_SLOT 22 /* Create PLT entry */ -+#define R_ARM_RELATIVE 23 /* Adjust by program base */ -+#define R_ARM_GOTOFF 24 /* 32 bit offset to GOT */ -+#define R_ARM_GOTPC 25 /* 32 bit PC relative offset to GOT */ -+#define R_ARM_GOT32 26 /* 32 bit GOT entry */ -+#define R_ARM_PLT32 27 /* 32 bit PLT address */ -+#define R_ARM_ALU_PCREL_7_0 32 -+#define R_ARM_ALU_PCREL_15_8 33 -+#define R_ARM_ALU_PCREL_23_15 34 -+#define R_ARM_LDR_SBREL_11_0 35 -+#define R_ARM_ALU_SBREL_19_12 36 -+#define R_ARM_ALU_SBREL_27_20 37 -+#define R_ARM_TLS_GOTDESC 90 -+#define R_ARM_TLS_CALL 91 -+#define R_ARM_TLS_DESCSEQ 92 -+#define R_ARM_THM_TLS_CALL 93 -+#define R_ARM_GNU_VTENTRY 100 -+#define R_ARM_GNU_VTINHERIT 101 -+#define R_ARM_THM_PC11 102 /* thumb unconditional branch */ -+#define R_ARM_THM_PC9 103 /* thumb conditional branch */ -+#define R_ARM_TLS_GD32 104 /* PC-rel 32 bit for global dynamic -+ thread local data */ -+#define R_ARM_TLS_LDM32 105 /* PC-rel 32 bit for local dynamic -+ thread local data */ -+#define R_ARM_TLS_LDO32 106 /* 32 bit offset relative to TLS -+ block */ -+#define R_ARM_TLS_IE32 107 /* PC-rel 32 bit for GOT entry of -+ static TLS block offset */ -+#define R_ARM_TLS_LE32 108 /* 32 bit offset relative to static -+ TLS block */ -+#define R_ARM_THM_TLS_DESCSEQ 129 -+#define R_ARM_IRELATIVE 160 -+#define R_ARM_RXPC25 249 -+#define R_ARM_RSBREL32 250 -+#define R_ARM_THM_RPC22 251 -+#define R_ARM_RREL32 252 -+#define R_ARM_RABS22 253 -+#define R_ARM_RPC24 254 -+#define R_ARM_RBASE 255 -+/* Keep this the last entry. */ -+#define R_ARM_NUM 256 -+ -+/* IA-64 specific declarations. */ -+ -+/* Processor specific flags for the Ehdr e_flags field. */ -+#define EF_IA_64_MASKOS 0x0000000f /* os-specific flags */ -+#define EF_IA_64_ABI64 0x00000010 /* 64-bit ABI */ -+#define EF_IA_64_ARCH 0xff000000 /* arch. version mask */ -+ -+/* Processor specific values for the Phdr p_type field. */ -+#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) /* arch extension bits */ -+#define PT_IA_64_UNWIND (PT_LOPROC + 1) /* ia64 unwind bits */ -+#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12) -+#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13) -+#define PT_IA_64_HP_STACK (PT_LOOS + 0x14) -+ -+/* Processor specific flags for the Phdr p_flags field. */ -+#define PF_IA_64_NORECOV 0x80000000 /* spec insns w/o recovery */ -+ -+/* Processor specific values for the Shdr sh_type field. */ -+#define SHT_IA_64_EXT (SHT_LOPROC + 0) /* extension bits */ -+#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) /* unwind bits */ -+ -+/* Processor specific flags for the Shdr sh_flags field. */ -+#define SHF_IA_64_SHORT 0x10000000 /* section near gp */ -+#define SHF_IA_64_NORECOV 0x20000000 /* spec insns w/o recovery */ -+ -+/* Processor specific values for the Dyn d_tag field. */ -+#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0) -+#define DT_IA_64_NUM 1 -+ -+/* IA-64 relocations. */ -+#define R_IA64_NONE 0x00 /* none */ -+#define R_IA64_IMM14 0x21 /* symbol + addend, add imm14 */ -+#define R_IA64_IMM22 0x22 /* symbol + addend, add imm22 */ -+#define R_IA64_IMM64 0x23 /* symbol + addend, mov imm64 */ -+#define R_IA64_DIR32MSB 0x24 /* symbol + addend, data4 MSB */ -+#define R_IA64_DIR32LSB 0x25 /* symbol + addend, data4 LSB */ -+#define R_IA64_DIR64MSB 0x26 /* symbol + addend, data8 MSB */ -+#define R_IA64_DIR64LSB 0x27 /* symbol + addend, data8 LSB */ -+#define R_IA64_GPREL22 0x2a /* @gprel(sym + add), add imm22 */ -+#define R_IA64_GPREL64I 0x2b /* @gprel(sym + add), mov imm64 */ -+#define R_IA64_GPREL32MSB 0x2c /* @gprel(sym + add), data4 MSB */ -+#define R_IA64_GPREL32LSB 0x2d /* @gprel(sym + add), data4 LSB */ -+#define R_IA64_GPREL64MSB 0x2e /* @gprel(sym + add), data8 MSB */ -+#define R_IA64_GPREL64LSB 0x2f /* @gprel(sym + add), data8 LSB */ -+#define R_IA64_LTOFF22 0x32 /* @ltoff(sym + add), add imm22 */ -+#define R_IA64_LTOFF64I 0x33 /* @ltoff(sym + add), mov imm64 */ -+#define R_IA64_PLTOFF22 0x3a /* @pltoff(sym + add), add imm22 */ -+#define R_IA64_PLTOFF64I 0x3b /* @pltoff(sym + add), mov imm64 */ -+#define R_IA64_PLTOFF64MSB 0x3e /* @pltoff(sym + add), data8 MSB */ -+#define R_IA64_PLTOFF64LSB 0x3f /* @pltoff(sym + add), data8 LSB */ -+#define R_IA64_FPTR64I 0x43 /* @fptr(sym + add), mov imm64 */ -+#define R_IA64_FPTR32MSB 0x44 /* @fptr(sym + add), data4 MSB */ -+#define R_IA64_FPTR32LSB 0x45 /* @fptr(sym + add), data4 LSB */ -+#define R_IA64_FPTR64MSB 0x46 /* @fptr(sym + add), data8 MSB */ -+#define R_IA64_FPTR64LSB 0x47 /* @fptr(sym + add), data8 LSB */ -+#define R_IA64_PCREL60B 0x48 /* @pcrel(sym + add), brl */ -+#define R_IA64_PCREL21B 0x49 /* @pcrel(sym + add), ptb, call */ -+#define R_IA64_PCREL21M 0x4a /* @pcrel(sym + add), chk.s */ -+#define R_IA64_PCREL21F 0x4b /* @pcrel(sym + add), fchkf */ -+#define R_IA64_PCREL32MSB 0x4c /* @pcrel(sym + add), data4 MSB */ -+#define R_IA64_PCREL32LSB 0x4d /* @pcrel(sym + add), data4 LSB */ -+#define R_IA64_PCREL64MSB 0x4e /* @pcrel(sym + add), data8 MSB */ -+#define R_IA64_PCREL64LSB 0x4f /* @pcrel(sym + add), data8 LSB */ -+#define R_IA64_LTOFF_FPTR22 0x52 /* @ltoff(@fptr(s+a)), imm22 */ -+#define R_IA64_LTOFF_FPTR64I 0x53 /* @ltoff(@fptr(s+a)), imm64 */ -+#define R_IA64_LTOFF_FPTR32MSB 0x54 /* @ltoff(@fptr(s+a)), data4 MSB */ -+#define R_IA64_LTOFF_FPTR32LSB 0x55 /* @ltoff(@fptr(s+a)), data4 LSB */ -+#define R_IA64_LTOFF_FPTR64MSB 0x56 /* @ltoff(@fptr(s+a)), data8 MSB */ -+#define R_IA64_LTOFF_FPTR64LSB 0x57 /* @ltoff(@fptr(s+a)), data8 LSB */ -+#define R_IA64_SEGREL32MSB 0x5c /* @segrel(sym + add), data4 MSB */ -+#define R_IA64_SEGREL32LSB 0x5d /* @segrel(sym + add), data4 LSB */ -+#define R_IA64_SEGREL64MSB 0x5e /* @segrel(sym + add), data8 MSB */ -+#define R_IA64_SEGREL64LSB 0x5f /* @segrel(sym + add), data8 LSB */ -+#define R_IA64_SECREL32MSB 0x64 /* @secrel(sym + add), data4 MSB */ -+#define R_IA64_SECREL32LSB 0x65 /* @secrel(sym + add), data4 LSB */ -+#define R_IA64_SECREL64MSB 0x66 /* @secrel(sym + add), data8 MSB */ -+#define R_IA64_SECREL64LSB 0x67 /* @secrel(sym + add), data8 LSB */ -+#define R_IA64_REL32MSB 0x6c /* data 4 + REL */ -+#define R_IA64_REL32LSB 0x6d /* data 4 + REL */ -+#define R_IA64_REL64MSB 0x6e /* data 8 + REL */ -+#define R_IA64_REL64LSB 0x6f /* data 8 + REL */ -+#define R_IA64_LTV32MSB 0x74 /* symbol + addend, data4 MSB */ -+#define R_IA64_LTV32LSB 0x75 /* symbol + addend, data4 LSB */ -+#define R_IA64_LTV64MSB 0x76 /* symbol + addend, data8 MSB */ -+#define R_IA64_LTV64LSB 0x77 /* symbol + addend, data8 LSB */ -+#define R_IA64_PCREL21BI 0x79 /* @pcrel(sym + add), 21bit inst */ -+#define R_IA64_PCREL22 0x7a /* @pcrel(sym + add), 22bit inst */ -+#define R_IA64_PCREL64I 0x7b /* @pcrel(sym + add), 64bit inst */ -+#define R_IA64_IPLTMSB 0x80 /* dynamic reloc, imported PLT, MSB */ -+#define R_IA64_IPLTLSB 0x81 /* dynamic reloc, imported PLT, LSB */ -+#define R_IA64_COPY 0x84 /* copy relocation */ -+#define R_IA64_SUB 0x85 /* Addend and symbol difference */ -+#define R_IA64_LTOFF22X 0x86 /* LTOFF22, relaxable. */ -+#define R_IA64_LDXMOV 0x87 /* Use of LTOFF22X. */ -+#define R_IA64_TPREL14 0x91 /* @tprel(sym + add), imm14 */ -+#define R_IA64_TPREL22 0x92 /* @tprel(sym + add), imm22 */ -+#define R_IA64_TPREL64I 0x93 /* @tprel(sym + add), imm64 */ -+#define R_IA64_TPREL64MSB 0x96 /* @tprel(sym + add), data8 MSB */ -+#define R_IA64_TPREL64LSB 0x97 /* @tprel(sym + add), data8 LSB */ -+#define R_IA64_LTOFF_TPREL22 0x9a /* @ltoff(@tprel(s+a)), imm2 */ -+#define R_IA64_DTPMOD64MSB 0xa6 /* @dtpmod(sym + add), data8 MSB */ -+#define R_IA64_DTPMOD64LSB 0xa7 /* @dtpmod(sym + add), data8 LSB */ -+#define R_IA64_LTOFF_DTPMOD22 0xaa /* @ltoff(@dtpmod(sym + add)), imm22 */ -+#define R_IA64_DTPREL14 0xb1 /* @dtprel(sym + add), imm14 */ -+#define R_IA64_DTPREL22 0xb2 /* @dtprel(sym + add), imm22 */ -+#define R_IA64_DTPREL64I 0xb3 /* @dtprel(sym + add), imm64 */ -+#define R_IA64_DTPREL32MSB 0xb4 /* @dtprel(sym + add), data4 MSB */ -+#define R_IA64_DTPREL32LSB 0xb5 /* @dtprel(sym + add), data4 LSB */ -+#define R_IA64_DTPREL64MSB 0xb6 /* @dtprel(sym + add), data8 MSB */ -+#define R_IA64_DTPREL64LSB 0xb7 /* @dtprel(sym + add), data8 LSB */ -+#define R_IA64_LTOFF_DTPREL22 0xba /* @ltoff(@dtprel(s+a)), imm22 */ -+ -+/* SH specific declarations */ -+ -+/* Processor specific flags for the ELF header e_flags field. */ -+#define EF_SH_MACH_MASK 0x1f -+#define EF_SH_UNKNOWN 0x0 -+#define EF_SH1 0x1 -+#define EF_SH2 0x2 -+#define EF_SH3 0x3 -+#define EF_SH_DSP 0x4 -+#define EF_SH3_DSP 0x5 -+#define EF_SH4AL_DSP 0x6 -+#define EF_SH3E 0x8 -+#define EF_SH4 0x9 -+#define EF_SH2E 0xb -+#define EF_SH4A 0xc -+#define EF_SH2A 0xd -+#define EF_SH4_NOFPU 0x10 -+#define EF_SH4A_NOFPU 0x11 -+#define EF_SH4_NOMMU_NOFPU 0x12 -+#define EF_SH2A_NOFPU 0x13 -+#define EF_SH3_NOMMU 0x14 -+#define EF_SH2A_SH4_NOFPU 0x15 -+#define EF_SH2A_SH3_NOFPU 0x16 -+#define EF_SH2A_SH4 0x17 -+#define EF_SH2A_SH3E 0x18 -+ -+/* SH relocs. */ -+#define R_SH_NONE 0 -+#define R_SH_DIR32 1 -+#define R_SH_REL32 2 -+#define R_SH_DIR8WPN 3 -+#define R_SH_IND12W 4 -+#define R_SH_DIR8WPL 5 -+#define R_SH_DIR8WPZ 6 -+#define R_SH_DIR8BP 7 -+#define R_SH_DIR8W 8 -+#define R_SH_DIR8L 9 -+#define R_SH_SWITCH16 25 -+#define R_SH_SWITCH32 26 -+#define R_SH_USES 27 -+#define R_SH_COUNT 28 -+#define R_SH_ALIGN 29 -+#define R_SH_CODE 30 -+#define R_SH_DATA 31 -+#define R_SH_LABEL 32 -+#define R_SH_SWITCH8 33 -+#define R_SH_GNU_VTINHERIT 34 -+#define R_SH_GNU_VTENTRY 35 -+#define R_SH_TLS_GD_32 144 -+#define R_SH_TLS_LD_32 145 -+#define R_SH_TLS_LDO_32 146 -+#define R_SH_TLS_IE_32 147 -+#define R_SH_TLS_LE_32 148 -+#define R_SH_TLS_DTPMOD32 149 -+#define R_SH_TLS_DTPOFF32 150 -+#define R_SH_TLS_TPOFF32 151 -+#define R_SH_GOT32 160 -+#define R_SH_PLT32 161 -+#define R_SH_COPY 162 -+#define R_SH_GLOB_DAT 163 -+#define R_SH_JMP_SLOT 164 -+#define R_SH_RELATIVE 165 -+#define R_SH_GOTOFF 166 -+#define R_SH_GOTPC 167 -+/* Keep this the last entry. */ -+#define R_SH_NUM 256 -+ -+/* S/390 specific definitions. */ -+ -+/* Valid values for the e_flags field. */ -+ -+#define EF_S390_HIGH_GPRS 0x00000001 /* High GPRs kernel facility needed. */ -+ -+/* Additional s390 relocs */ -+ -+#define R_390_NONE 0 /* No reloc. */ -+#define R_390_8 1 /* Direct 8 bit. */ -+#define R_390_12 2 /* Direct 12 bit. */ -+#define R_390_16 3 /* Direct 16 bit. */ -+#define R_390_32 4 /* Direct 32 bit. */ -+#define R_390_PC32 5 /* PC relative 32 bit. */ -+#define R_390_GOT12 6 /* 12 bit GOT offset. */ -+#define R_390_GOT32 7 /* 32 bit GOT offset. */ -+#define R_390_PLT32 8 /* 32 bit PC relative PLT address. */ -+#define R_390_COPY 9 /* Copy symbol at runtime. */ -+#define R_390_GLOB_DAT 10 /* Create GOT entry. */ -+#define R_390_JMP_SLOT 11 /* Create PLT entry. */ -+#define R_390_RELATIVE 12 /* Adjust by program base. */ -+#define R_390_GOTOFF32 13 /* 32 bit offset to GOT. */ -+#define R_390_GOTPC 14 /* 32 bit PC relative offset to GOT. */ -+#define R_390_GOT16 15 /* 16 bit GOT offset. */ -+#define R_390_PC16 16 /* PC relative 16 bit. */ -+#define R_390_PC16DBL 17 /* PC relative 16 bit shifted by 1. */ -+#define R_390_PLT16DBL 18 /* 16 bit PC rel. PLT shifted by 1. */ -+#define R_390_PC32DBL 19 /* PC relative 32 bit shifted by 1. */ -+#define R_390_PLT32DBL 20 /* 32 bit PC rel. PLT shifted by 1. */ -+#define R_390_GOTPCDBL 21 /* 32 bit PC rel. GOT shifted by 1. */ -+#define R_390_64 22 /* Direct 64 bit. */ -+#define R_390_PC64 23 /* PC relative 64 bit. */ -+#define R_390_GOT64 24 /* 64 bit GOT offset. */ -+#define R_390_PLT64 25 /* 64 bit PC relative PLT address. */ -+#define R_390_GOTENT 26 /* 32 bit PC rel. to GOT entry >> 1. */ -+#define R_390_GOTOFF16 27 /* 16 bit offset to GOT. */ -+#define R_390_GOTOFF64 28 /* 64 bit offset to GOT. */ -+#define R_390_GOTPLT12 29 /* 12 bit offset to jump slot. */ -+#define R_390_GOTPLT16 30 /* 16 bit offset to jump slot. */ -+#define R_390_GOTPLT32 31 /* 32 bit offset to jump slot. */ -+#define R_390_GOTPLT64 32 /* 64 bit offset to jump slot. */ -+#define R_390_GOTPLTENT 33 /* 32 bit rel. offset to jump slot. */ -+#define R_390_PLTOFF16 34 /* 16 bit offset from GOT to PLT. */ -+#define R_390_PLTOFF32 35 /* 32 bit offset from GOT to PLT. */ -+#define R_390_PLTOFF64 36 /* 16 bit offset from GOT to PLT. */ -+#define R_390_TLS_LOAD 37 /* Tag for load insn in TLS code. */ -+#define R_390_TLS_GDCALL 38 /* Tag for function call in general -+ dynamic TLS code. */ -+#define R_390_TLS_LDCALL 39 /* Tag for function call in local -+ dynamic TLS code. */ -+#define R_390_TLS_GD32 40 /* Direct 32 bit for general dynamic -+ thread local data. */ -+#define R_390_TLS_GD64 41 /* Direct 64 bit for general dynamic -+ thread local data. */ -+#define R_390_TLS_GOTIE12 42 /* 12 bit GOT offset for static TLS -+ block offset. */ -+#define R_390_TLS_GOTIE32 43 /* 32 bit GOT offset for static TLS -+ block offset. */ -+#define R_390_TLS_GOTIE64 44 /* 64 bit GOT offset for static TLS -+ block offset. */ -+#define R_390_TLS_LDM32 45 /* Direct 32 bit for local dynamic -+ thread local data in LE code. */ -+#define R_390_TLS_LDM64 46 /* Direct 64 bit for local dynamic -+ thread local data in LE code. */ -+#define R_390_TLS_IE32 47 /* 32 bit address of GOT entry for -+ negated static TLS block offset. */ -+#define R_390_TLS_IE64 48 /* 64 bit address of GOT entry for -+ negated static TLS block offset. */ -+#define R_390_TLS_IEENT 49 /* 32 bit rel. offset to GOT entry for -+ negated static TLS block offset. */ -+#define R_390_TLS_LE32 50 /* 32 bit negated offset relative to -+ static TLS block. */ -+#define R_390_TLS_LE64 51 /* 64 bit negated offset relative to -+ static TLS block. */ -+#define R_390_TLS_LDO32 52 /* 32 bit offset relative to TLS -+ block. */ -+#define R_390_TLS_LDO64 53 /* 64 bit offset relative to TLS -+ block. */ -+#define R_390_TLS_DTPMOD 54 /* ID of module containing symbol. */ -+#define R_390_TLS_DTPOFF 55 /* Offset in TLS block. */ -+#define R_390_TLS_TPOFF 56 /* Negated offset in static TLS -+ block. */ -+#define R_390_20 57 /* Direct 20 bit. */ -+#define R_390_GOT20 58 /* 20 bit GOT offset. */ -+#define R_390_GOTPLT20 59 /* 20 bit offset to jump slot. */ -+#define R_390_TLS_GOTIE20 60 /* 20 bit GOT offset for static TLS -+ block offset. */ -+#define R_390_IRELATIVE 61 /* STT_GNU_IFUNC relocation. */ -+/* Keep this the last entry. */ -+#define R_390_NUM 62 -+ -+ -+/* CRIS relocations. */ -+#define R_CRIS_NONE 0 -+#define R_CRIS_8 1 -+#define R_CRIS_16 2 -+#define R_CRIS_32 3 -+#define R_CRIS_8_PCREL 4 -+#define R_CRIS_16_PCREL 5 -+#define R_CRIS_32_PCREL 6 -+#define R_CRIS_GNU_VTINHERIT 7 -+#define R_CRIS_GNU_VTENTRY 8 -+#define R_CRIS_COPY 9 -+#define R_CRIS_GLOB_DAT 10 -+#define R_CRIS_JUMP_SLOT 11 -+#define R_CRIS_RELATIVE 12 -+#define R_CRIS_16_GOT 13 -+#define R_CRIS_32_GOT 14 -+#define R_CRIS_16_GOTPLT 15 -+#define R_CRIS_32_GOTPLT 16 -+#define R_CRIS_32_GOTREL 17 -+#define R_CRIS_32_PLT_GOTREL 18 -+#define R_CRIS_32_PLT_PCREL 19 -+ -+#define R_CRIS_NUM 20 -+ -+ -+/* AMD x86-64 relocations. */ -+#define R_X86_64_NONE 0 /* No reloc */ -+#define R_X86_64_64 1 /* Direct 64 bit */ -+#define R_X86_64_PC32 2 /* PC relative 32 bit signed */ -+#define R_X86_64_GOT32 3 /* 32 bit GOT entry */ -+#define R_X86_64_PLT32 4 /* 32 bit PLT address */ -+#define R_X86_64_COPY 5 /* Copy symbol at runtime */ -+#define R_X86_64_GLOB_DAT 6 /* Create GOT entry */ -+#define R_X86_64_JUMP_SLOT 7 /* Create PLT entry */ -+#define R_X86_64_RELATIVE 8 /* Adjust by program base */ -+#define R_X86_64_GOTPCREL 9 /* 32 bit signed PC relative -+ offset to GOT */ -+#define R_X86_64_32 10 /* Direct 32 bit zero extended */ -+#define R_X86_64_32S 11 /* Direct 32 bit sign extended */ -+#define R_X86_64_16 12 /* Direct 16 bit zero extended */ -+#define R_X86_64_PC16 13 /* 16 bit sign extended pc relative */ -+#define R_X86_64_8 14 /* Direct 8 bit sign extended */ -+#define R_X86_64_PC8 15 /* 8 bit sign extended pc relative */ -+#define R_X86_64_DTPMOD64 16 /* ID of module containing symbol */ -+#define R_X86_64_DTPOFF64 17 /* Offset in module's TLS block */ -+#define R_X86_64_TPOFF64 18 /* Offset in initial TLS block */ -+#define R_X86_64_TLSGD 19 /* 32 bit signed PC relative offset -+ to two GOT entries for GD symbol */ -+#define R_X86_64_TLSLD 20 /* 32 bit signed PC relative offset -+ to two GOT entries for LD symbol */ -+#define R_X86_64_DTPOFF32 21 /* Offset in TLS block */ -+#define R_X86_64_GOTTPOFF 22 /* 32 bit signed PC relative offset -+ to GOT entry for IE symbol */ -+#define R_X86_64_TPOFF32 23 /* Offset in initial TLS block */ -+#define R_X86_64_PC64 24 /* PC relative 64 bit */ -+#define R_X86_64_GOTOFF64 25 /* 64 bit offset to GOT */ -+#define R_X86_64_GOTPC32 26 /* 32 bit signed pc relative -+ offset to GOT */ -+#define R_X86_64_GOT64 27 /* 64-bit GOT entry offset */ -+#define R_X86_64_GOTPCREL64 28 /* 64-bit PC relative offset -+ to GOT entry */ -+#define R_X86_64_GOTPC64 29 /* 64-bit PC relative offset to GOT */ -+#define R_X86_64_GOTPLT64 30 /* like GOT64, says PLT entry needed */ -+#define R_X86_64_PLTOFF64 31 /* 64-bit GOT relative offset -+ to PLT entry */ -+#define R_X86_64_SIZE32 32 /* Size of symbol plus 32-bit addend */ -+#define R_X86_64_SIZE64 33 /* Size of symbol plus 64-bit addend */ -+#define R_X86_64_GOTPC32_TLSDESC 34 /* GOT offset for TLS descriptor. */ -+#define R_X86_64_TLSDESC_CALL 35 /* Marker for call through TLS -+ descriptor. */ -+#define R_X86_64_TLSDESC 36 /* TLS descriptor. */ -+#define R_X86_64_IRELATIVE 37 /* Adjust indirectly by program base */ -+#define R_X86_64_RELATIVE64 38 /* 64-bit adjust by program base */ -+ -+#define R_X86_64_NUM 39 -+ -+ -+/* AM33 relocations. */ -+#define R_MN10300_NONE 0 /* No reloc. */ -+#define R_MN10300_32 1 /* Direct 32 bit. */ -+#define R_MN10300_16 2 /* Direct 16 bit. */ -+#define R_MN10300_8 3 /* Direct 8 bit. */ -+#define R_MN10300_PCREL32 4 /* PC-relative 32-bit. */ -+#define R_MN10300_PCREL16 5 /* PC-relative 16-bit signed. */ -+#define R_MN10300_PCREL8 6 /* PC-relative 8-bit signed. */ -+#define R_MN10300_GNU_VTINHERIT 7 /* Ancient C++ vtable garbage... */ -+#define R_MN10300_GNU_VTENTRY 8 /* ... collection annotation. */ -+#define R_MN10300_24 9 /* Direct 24 bit. */ -+#define R_MN10300_GOTPC32 10 /* 32-bit PCrel offset to GOT. */ -+#define R_MN10300_GOTPC16 11 /* 16-bit PCrel offset to GOT. */ -+#define R_MN10300_GOTOFF32 12 /* 32-bit offset from GOT. */ -+#define R_MN10300_GOTOFF24 13 /* 24-bit offset from GOT. */ -+#define R_MN10300_GOTOFF16 14 /* 16-bit offset from GOT. */ -+#define R_MN10300_PLT32 15 /* 32-bit PCrel to PLT entry. */ -+#define R_MN10300_PLT16 16 /* 16-bit PCrel to PLT entry. */ -+#define R_MN10300_GOT32 17 /* 32-bit offset to GOT entry. */ -+#define R_MN10300_GOT24 18 /* 24-bit offset to GOT entry. */ -+#define R_MN10300_GOT16 19 /* 16-bit offset to GOT entry. */ -+#define R_MN10300_COPY 20 /* Copy symbol at runtime. */ -+#define R_MN10300_GLOB_DAT 21 /* Create GOT entry. */ -+#define R_MN10300_JMP_SLOT 22 /* Create PLT entry. */ -+#define R_MN10300_RELATIVE 23 /* Adjust by program base. */ -+ -+#define R_MN10300_NUM 24 -+ -+ -+/* M32R relocs. */ -+#define R_M32R_NONE 0 /* No reloc. */ -+#define R_M32R_16 1 /* Direct 16 bit. */ -+#define R_M32R_32 2 /* Direct 32 bit. */ -+#define R_M32R_24 3 /* Direct 24 bit. */ -+#define R_M32R_10_PCREL 4 /* PC relative 10 bit shifted. */ -+#define R_M32R_18_PCREL 5 /* PC relative 18 bit shifted. */ -+#define R_M32R_26_PCREL 6 /* PC relative 26 bit shifted. */ -+#define R_M32R_HI16_ULO 7 /* High 16 bit with unsigned low. */ -+#define R_M32R_HI16_SLO 8 /* High 16 bit with signed low. */ -+#define R_M32R_LO16 9 /* Low 16 bit. */ -+#define R_M32R_SDA16 10 /* 16 bit offset in SDA. */ -+#define R_M32R_GNU_VTINHERIT 11 -+#define R_M32R_GNU_VTENTRY 12 -+/* M32R relocs use SHT_RELA. */ -+#define R_M32R_16_RELA 33 /* Direct 16 bit. */ -+#define R_M32R_32_RELA 34 /* Direct 32 bit. */ -+#define R_M32R_24_RELA 35 /* Direct 24 bit. */ -+#define R_M32R_10_PCREL_RELA 36 /* PC relative 10 bit shifted. */ -+#define R_M32R_18_PCREL_RELA 37 /* PC relative 18 bit shifted. */ -+#define R_M32R_26_PCREL_RELA 38 /* PC relative 26 bit shifted. */ -+#define R_M32R_HI16_ULO_RELA 39 /* High 16 bit with unsigned low */ -+#define R_M32R_HI16_SLO_RELA 40 /* High 16 bit with signed low */ -+#define R_M32R_LO16_RELA 41 /* Low 16 bit */ -+#define R_M32R_SDA16_RELA 42 /* 16 bit offset in SDA */ -+#define R_M32R_RELA_GNU_VTINHERIT 43 -+#define R_M32R_RELA_GNU_VTENTRY 44 -+#define R_M32R_REL32 45 /* PC relative 32 bit. */ -+ -+#define R_M32R_GOT24 48 /* 24 bit GOT entry */ -+#define R_M32R_26_PLTREL 49 /* 26 bit PC relative to PLT shifted */ -+#define R_M32R_COPY 50 /* Copy symbol at runtime */ -+#define R_M32R_GLOB_DAT 51 /* Create GOT entry */ -+#define R_M32R_JMP_SLOT 52 /* Create PLT entry */ -+#define R_M32R_RELATIVE 53 /* Adjust by program base */ -+#define R_M32R_GOTOFF 54 /* 24 bit offset to GOT */ -+#define R_M32R_GOTPC24 55 /* 24 bit PC relative offset to GOT */ -+#define R_M32R_GOT16_HI_ULO 56 /* High 16 bit GOT entry with unsigned -+ low */ -+#define R_M32R_GOT16_HI_SLO 57 /* High 16 bit GOT entry with signed -+ low */ -+#define R_M32R_GOT16_LO 58 /* Low 16 bit GOT entry */ -+#define R_M32R_GOTPC_HI_ULO 59 /* High 16 bit PC relative offset to -+ GOT with unsigned low */ -+#define R_M32R_GOTPC_HI_SLO 60 /* High 16 bit PC relative offset to -+ GOT with signed low */ -+#define R_M32R_GOTPC_LO 61 /* Low 16 bit PC relative offset to -+ GOT */ -+#define R_M32R_GOTOFF_HI_ULO 62 /* High 16 bit offset to GOT -+ with unsigned low */ -+#define R_M32R_GOTOFF_HI_SLO 63 /* High 16 bit offset to GOT -+ with signed low */ -+#define R_M32R_GOTOFF_LO 64 /* Low 16 bit offset to GOT */ -+#define R_M32R_NUM 256 /* Keep this the last entry. */ -+ -+ -+/* TILEPro relocations. */ -+#define R_TILEPRO_NONE 0 /* No reloc */ -+#define R_TILEPRO_32 1 /* Direct 32 bit */ -+#define R_TILEPRO_16 2 /* Direct 16 bit */ -+#define R_TILEPRO_8 3 /* Direct 8 bit */ -+#define R_TILEPRO_32_PCREL 4 /* PC relative 32 bit */ -+#define R_TILEPRO_16_PCREL 5 /* PC relative 16 bit */ -+#define R_TILEPRO_8_PCREL 6 /* PC relative 8 bit */ -+#define R_TILEPRO_LO16 7 /* Low 16 bit */ -+#define R_TILEPRO_HI16 8 /* High 16 bit */ -+#define R_TILEPRO_HA16 9 /* High 16 bit, adjusted */ -+#define R_TILEPRO_COPY 10 /* Copy relocation */ -+#define R_TILEPRO_GLOB_DAT 11 /* Create GOT entry */ -+#define R_TILEPRO_JMP_SLOT 12 /* Create PLT entry */ -+#define R_TILEPRO_RELATIVE 13 /* Adjust by program base */ -+#define R_TILEPRO_BROFF_X1 14 /* X1 pipe branch offset */ -+#define R_TILEPRO_JOFFLONG_X1 15 /* X1 pipe jump offset */ -+#define R_TILEPRO_JOFFLONG_X1_PLT 16 /* X1 pipe jump offset to PLT */ -+#define R_TILEPRO_IMM8_X0 17 /* X0 pipe 8-bit */ -+#define R_TILEPRO_IMM8_Y0 18 /* Y0 pipe 8-bit */ -+#define R_TILEPRO_IMM8_X1 19 /* X1 pipe 8-bit */ -+#define R_TILEPRO_IMM8_Y1 20 /* Y1 pipe 8-bit */ -+#define R_TILEPRO_MT_IMM15_X1 21 /* X1 pipe mtspr */ -+#define R_TILEPRO_MF_IMM15_X1 22 /* X1 pipe mfspr */ -+#define R_TILEPRO_IMM16_X0 23 /* X0 pipe 16-bit */ -+#define R_TILEPRO_IMM16_X1 24 /* X1 pipe 16-bit */ -+#define R_TILEPRO_IMM16_X0_LO 25 /* X0 pipe low 16-bit */ -+#define R_TILEPRO_IMM16_X1_LO 26 /* X1 pipe low 16-bit */ -+#define R_TILEPRO_IMM16_X0_HI 27 /* X0 pipe high 16-bit */ -+#define R_TILEPRO_IMM16_X1_HI 28 /* X1 pipe high 16-bit */ -+#define R_TILEPRO_IMM16_X0_HA 29 /* X0 pipe high 16-bit, adjusted */ -+#define R_TILEPRO_IMM16_X1_HA 30 /* X1 pipe high 16-bit, adjusted */ -+#define R_TILEPRO_IMM16_X0_PCREL 31 /* X0 pipe PC relative 16 bit */ -+#define R_TILEPRO_IMM16_X1_PCREL 32 /* X1 pipe PC relative 16 bit */ -+#define R_TILEPRO_IMM16_X0_LO_PCREL 33 /* X0 pipe PC relative low 16 bit */ -+#define R_TILEPRO_IMM16_X1_LO_PCREL 34 /* X1 pipe PC relative low 16 bit */ -+#define R_TILEPRO_IMM16_X0_HI_PCREL 35 /* X0 pipe PC relative high 16 bit */ -+#define R_TILEPRO_IMM16_X1_HI_PCREL 36 /* X1 pipe PC relative high 16 bit */ -+#define R_TILEPRO_IMM16_X0_HA_PCREL 37 /* X0 pipe PC relative ha() 16 bit */ -+#define R_TILEPRO_IMM16_X1_HA_PCREL 38 /* X1 pipe PC relative ha() 16 bit */ -+#define R_TILEPRO_IMM16_X0_GOT 39 /* X0 pipe 16-bit GOT offset */ -+#define R_TILEPRO_IMM16_X1_GOT 40 /* X1 pipe 16-bit GOT offset */ -+#define R_TILEPRO_IMM16_X0_GOT_LO 41 /* X0 pipe low 16-bit GOT offset */ -+#define R_TILEPRO_IMM16_X1_GOT_LO 42 /* X1 pipe low 16-bit GOT offset */ -+#define R_TILEPRO_IMM16_X0_GOT_HI 43 /* X0 pipe high 16-bit GOT offset */ -+#define R_TILEPRO_IMM16_X1_GOT_HI 44 /* X1 pipe high 16-bit GOT offset */ -+#define R_TILEPRO_IMM16_X0_GOT_HA 45 /* X0 pipe ha() 16-bit GOT offset */ -+#define R_TILEPRO_IMM16_X1_GOT_HA 46 /* X1 pipe ha() 16-bit GOT offset */ -+#define R_TILEPRO_MMSTART_X0 47 /* X0 pipe mm "start" */ -+#define R_TILEPRO_MMEND_X0 48 /* X0 pipe mm "end" */ -+#define R_TILEPRO_MMSTART_X1 49 /* X1 pipe mm "start" */ -+#define R_TILEPRO_MMEND_X1 50 /* X1 pipe mm "end" */ -+#define R_TILEPRO_SHAMT_X0 51 /* X0 pipe shift amount */ -+#define R_TILEPRO_SHAMT_X1 52 /* X1 pipe shift amount */ -+#define R_TILEPRO_SHAMT_Y0 53 /* Y0 pipe shift amount */ -+#define R_TILEPRO_SHAMT_Y1 54 /* Y1 pipe shift amount */ -+#define R_TILEPRO_DEST_IMM8_X1 55 /* X1 pipe destination 8-bit */ -+/* Relocs 56-59 are currently not defined. */ -+#define R_TILEPRO_TLS_GD_CALL 60 /* "jal" for TLS GD */ -+#define R_TILEPRO_IMM8_X0_TLS_GD_ADD 61 /* X0 pipe "addi" for TLS GD */ -+#define R_TILEPRO_IMM8_X1_TLS_GD_ADD 62 /* X1 pipe "addi" for TLS GD */ -+#define R_TILEPRO_IMM8_Y0_TLS_GD_ADD 63 /* Y0 pipe "addi" for TLS GD */ -+#define R_TILEPRO_IMM8_Y1_TLS_GD_ADD 64 /* Y1 pipe "addi" for TLS GD */ -+#define R_TILEPRO_TLS_IE_LOAD 65 /* "lw_tls" for TLS IE */ -+#define R_TILEPRO_IMM16_X0_TLS_GD 66 /* X0 pipe 16-bit TLS GD offset */ -+#define R_TILEPRO_IMM16_X1_TLS_GD 67 /* X1 pipe 16-bit TLS GD offset */ -+#define R_TILEPRO_IMM16_X0_TLS_GD_LO 68 /* X0 pipe low 16-bit TLS GD offset */ -+#define R_TILEPRO_IMM16_X1_TLS_GD_LO 69 /* X1 pipe low 16-bit TLS GD offset */ -+#define R_TILEPRO_IMM16_X0_TLS_GD_HI 70 /* X0 pipe high 16-bit TLS GD offset */ -+#define R_TILEPRO_IMM16_X1_TLS_GD_HI 71 /* X1 pipe high 16-bit TLS GD offset */ -+#define R_TILEPRO_IMM16_X0_TLS_GD_HA 72 /* X0 pipe ha() 16-bit TLS GD offset */ -+#define R_TILEPRO_IMM16_X1_TLS_GD_HA 73 /* X1 pipe ha() 16-bit TLS GD offset */ -+#define R_TILEPRO_IMM16_X0_TLS_IE 74 /* X0 pipe 16-bit TLS IE offset */ -+#define R_TILEPRO_IMM16_X1_TLS_IE 75 /* X1 pipe 16-bit TLS IE offset */ -+#define R_TILEPRO_IMM16_X0_TLS_IE_LO 76 /* X0 pipe low 16-bit TLS IE offset */ -+#define R_TILEPRO_IMM16_X1_TLS_IE_LO 77 /* X1 pipe low 16-bit TLS IE offset */ -+#define R_TILEPRO_IMM16_X0_TLS_IE_HI 78 /* X0 pipe high 16-bit TLS IE offset */ -+#define R_TILEPRO_IMM16_X1_TLS_IE_HI 79 /* X1 pipe high 16-bit TLS IE offset */ -+#define R_TILEPRO_IMM16_X0_TLS_IE_HA 80 /* X0 pipe ha() 16-bit TLS IE offset */ -+#define R_TILEPRO_IMM16_X1_TLS_IE_HA 81 /* X1 pipe ha() 16-bit TLS IE offset */ -+#define R_TILEPRO_TLS_DTPMOD32 82 /* ID of module containing symbol */ -+#define R_TILEPRO_TLS_DTPOFF32 83 /* Offset in TLS block */ -+#define R_TILEPRO_TLS_TPOFF32 84 /* Offset in static TLS block */ -+#define R_TILEPRO_IMM16_X0_TLS_LE 85 /* X0 pipe 16-bit TLS LE offset */ -+#define R_TILEPRO_IMM16_X1_TLS_LE 86 /* X1 pipe 16-bit TLS LE offset */ -+#define R_TILEPRO_IMM16_X0_TLS_LE_LO 87 /* X0 pipe low 16-bit TLS LE offset */ -+#define R_TILEPRO_IMM16_X1_TLS_LE_LO 88 /* X1 pipe low 16-bit TLS LE offset */ -+#define R_TILEPRO_IMM16_X0_TLS_LE_HI 89 /* X0 pipe high 16-bit TLS LE offset */ -+#define R_TILEPRO_IMM16_X1_TLS_LE_HI 90 /* X1 pipe high 16-bit TLS LE offset */ -+#define R_TILEPRO_IMM16_X0_TLS_LE_HA 91 /* X0 pipe ha() 16-bit TLS LE offset */ -+#define R_TILEPRO_IMM16_X1_TLS_LE_HA 92 /* X1 pipe ha() 16-bit TLS LE offset */ -+ -+#define R_TILEPRO_GNU_VTINHERIT 128 /* GNU C++ vtable hierarchy */ -+#define R_TILEPRO_GNU_VTENTRY 129 /* GNU C++ vtable member usage */ -+ -+#define R_TILEPRO_NUM 130 -+ -+ -+/* TILE-Gx relocations. */ -+#define R_TILEGX_NONE 0 /* No reloc */ -+#define R_TILEGX_64 1 /* Direct 64 bit */ -+#define R_TILEGX_32 2 /* Direct 32 bit */ -+#define R_TILEGX_16 3 /* Direct 16 bit */ -+#define R_TILEGX_8 4 /* Direct 8 bit */ -+#define R_TILEGX_64_PCREL 5 /* PC relative 64 bit */ -+#define R_TILEGX_32_PCREL 6 /* PC relative 32 bit */ -+#define R_TILEGX_16_PCREL 7 /* PC relative 16 bit */ -+#define R_TILEGX_8_PCREL 8 /* PC relative 8 bit */ -+#define R_TILEGX_HW0 9 /* hword 0 16-bit */ -+#define R_TILEGX_HW1 10 /* hword 1 16-bit */ -+#define R_TILEGX_HW2 11 /* hword 2 16-bit */ -+#define R_TILEGX_HW3 12 /* hword 3 16-bit */ -+#define R_TILEGX_HW0_LAST 13 /* last hword 0 16-bit */ -+#define R_TILEGX_HW1_LAST 14 /* last hword 1 16-bit */ -+#define R_TILEGX_HW2_LAST 15 /* last hword 2 16-bit */ -+#define R_TILEGX_COPY 16 /* Copy relocation */ -+#define R_TILEGX_GLOB_DAT 17 /* Create GOT entry */ -+#define R_TILEGX_JMP_SLOT 18 /* Create PLT entry */ -+#define R_TILEGX_RELATIVE 19 /* Adjust by program base */ -+#define R_TILEGX_BROFF_X1 20 /* X1 pipe branch offset */ -+#define R_TILEGX_JUMPOFF_X1 21 /* X1 pipe jump offset */ -+#define R_TILEGX_JUMPOFF_X1_PLT 22 /* X1 pipe jump offset to PLT */ -+#define R_TILEGX_IMM8_X0 23 /* X0 pipe 8-bit */ -+#define R_TILEGX_IMM8_Y0 24 /* Y0 pipe 8-bit */ -+#define R_TILEGX_IMM8_X1 25 /* X1 pipe 8-bit */ -+#define R_TILEGX_IMM8_Y1 26 /* Y1 pipe 8-bit */ -+#define R_TILEGX_DEST_IMM8_X1 27 /* X1 pipe destination 8-bit */ -+#define R_TILEGX_MT_IMM14_X1 28 /* X1 pipe mtspr */ -+#define R_TILEGX_MF_IMM14_X1 29 /* X1 pipe mfspr */ -+#define R_TILEGX_MMSTART_X0 30 /* X0 pipe mm "start" */ -+#define R_TILEGX_MMEND_X0 31 /* X0 pipe mm "end" */ -+#define R_TILEGX_SHAMT_X0 32 /* X0 pipe shift amount */ -+#define R_TILEGX_SHAMT_X1 33 /* X1 pipe shift amount */ -+#define R_TILEGX_SHAMT_Y0 34 /* Y0 pipe shift amount */ -+#define R_TILEGX_SHAMT_Y1 35 /* Y1 pipe shift amount */ -+#define R_TILEGX_IMM16_X0_HW0 36 /* X0 pipe hword 0 */ -+#define R_TILEGX_IMM16_X1_HW0 37 /* X1 pipe hword 0 */ -+#define R_TILEGX_IMM16_X0_HW1 38 /* X0 pipe hword 1 */ -+#define R_TILEGX_IMM16_X1_HW1 39 /* X1 pipe hword 1 */ -+#define R_TILEGX_IMM16_X0_HW2 40 /* X0 pipe hword 2 */ -+#define R_TILEGX_IMM16_X1_HW2 41 /* X1 pipe hword 2 */ -+#define R_TILEGX_IMM16_X0_HW3 42 /* X0 pipe hword 3 */ -+#define R_TILEGX_IMM16_X1_HW3 43 /* X1 pipe hword 3 */ -+#define R_TILEGX_IMM16_X0_HW0_LAST 44 /* X0 pipe last hword 0 */ -+#define R_TILEGX_IMM16_X1_HW0_LAST 45 /* X1 pipe last hword 0 */ -+#define R_TILEGX_IMM16_X0_HW1_LAST 46 /* X0 pipe last hword 1 */ -+#define R_TILEGX_IMM16_X1_HW1_LAST 47 /* X1 pipe last hword 1 */ -+#define R_TILEGX_IMM16_X0_HW2_LAST 48 /* X0 pipe last hword 2 */ -+#define R_TILEGX_IMM16_X1_HW2_LAST 49 /* X1 pipe last hword 2 */ -+#define R_TILEGX_IMM16_X0_HW0_PCREL 50 /* X0 pipe PC relative hword 0 */ -+#define R_TILEGX_IMM16_X1_HW0_PCREL 51 /* X1 pipe PC relative hword 0 */ -+#define R_TILEGX_IMM16_X0_HW1_PCREL 52 /* X0 pipe PC relative hword 1 */ -+#define R_TILEGX_IMM16_X1_HW1_PCREL 53 /* X1 pipe PC relative hword 1 */ -+#define R_TILEGX_IMM16_X0_HW2_PCREL 54 /* X0 pipe PC relative hword 2 */ -+#define R_TILEGX_IMM16_X1_HW2_PCREL 55 /* X1 pipe PC relative hword 2 */ -+#define R_TILEGX_IMM16_X0_HW3_PCREL 56 /* X0 pipe PC relative hword 3 */ -+#define R_TILEGX_IMM16_X1_HW3_PCREL 57 /* X1 pipe PC relative hword 3 */ -+#define R_TILEGX_IMM16_X0_HW0_LAST_PCREL 58 /* X0 pipe PC-rel last hword 0 */ -+#define R_TILEGX_IMM16_X1_HW0_LAST_PCREL 59 /* X1 pipe PC-rel last hword 0 */ -+#define R_TILEGX_IMM16_X0_HW1_LAST_PCREL 60 /* X0 pipe PC-rel last hword 1 */ -+#define R_TILEGX_IMM16_X1_HW1_LAST_PCREL 61 /* X1 pipe PC-rel last hword 1 */ -+#define R_TILEGX_IMM16_X0_HW2_LAST_PCREL 62 /* X0 pipe PC-rel last hword 2 */ -+#define R_TILEGX_IMM16_X1_HW2_LAST_PCREL 63 /* X1 pipe PC-rel last hword 2 */ -+#define R_TILEGX_IMM16_X0_HW0_GOT 64 /* X0 pipe hword 0 GOT offset */ -+#define R_TILEGX_IMM16_X1_HW0_GOT 65 /* X1 pipe hword 0 GOT offset */ -+/* Relocs 66-71 are currently not defined. */ -+#define R_TILEGX_IMM16_X0_HW0_LAST_GOT 72 /* X0 pipe last hword 0 GOT offset */ -+#define R_TILEGX_IMM16_X1_HW0_LAST_GOT 73 /* X1 pipe last hword 0 GOT offset */ -+#define R_TILEGX_IMM16_X0_HW1_LAST_GOT 74 /* X0 pipe last hword 1 GOT offset */ -+#define R_TILEGX_IMM16_X1_HW1_LAST_GOT 75 /* X1 pipe last hword 1 GOT offset */ -+/* Relocs 76-77 are currently not defined. */ -+#define R_TILEGX_IMM16_X0_HW0_TLS_GD 78 /* X0 pipe hword 0 TLS GD offset */ -+#define R_TILEGX_IMM16_X1_HW0_TLS_GD 79 /* X1 pipe hword 0 TLS GD offset */ -+#define R_TILEGX_IMM16_X0_HW0_TLS_LE 80 /* X0 pipe hword 0 TLS LE offset */ -+#define R_TILEGX_IMM16_X1_HW0_TLS_LE 81 /* X1 pipe hword 0 TLS LE offset */ -+#define R_TILEGX_IMM16_X0_HW0_LAST_TLS_LE 82 /* X0 pipe last hword 0 LE off */ -+#define R_TILEGX_IMM16_X1_HW0_LAST_TLS_LE 83 /* X1 pipe last hword 0 LE off */ -+#define R_TILEGX_IMM16_X0_HW1_LAST_TLS_LE 84 /* X0 pipe last hword 1 LE off */ -+#define R_TILEGX_IMM16_X1_HW1_LAST_TLS_LE 85 /* X1 pipe last hword 1 LE off */ -+#define R_TILEGX_IMM16_X0_HW0_LAST_TLS_GD 86 /* X0 pipe last hword 0 GD off */ -+#define R_TILEGX_IMM16_X1_HW0_LAST_TLS_GD 87 /* X1 pipe last hword 0 GD off */ -+#define R_TILEGX_IMM16_X0_HW1_LAST_TLS_GD 88 /* X0 pipe last hword 1 GD off */ -+#define R_TILEGX_IMM16_X1_HW1_LAST_TLS_GD 89 /* X1 pipe last hword 1 GD off */ -+/* Relocs 90-91 are currently not defined. */ -+#define R_TILEGX_IMM16_X0_HW0_TLS_IE 92 /* X0 pipe hword 0 TLS IE offset */ -+#define R_TILEGX_IMM16_X1_HW0_TLS_IE 93 /* X1 pipe hword 0 TLS IE offset */ -+/* Relocs 94-99 are currently not defined. */ -+#define R_TILEGX_IMM16_X0_HW0_LAST_TLS_IE 100 /* X0 pipe last hword 0 IE off */ -+#define R_TILEGX_IMM16_X1_HW0_LAST_TLS_IE 101 /* X1 pipe last hword 0 IE off */ -+#define R_TILEGX_IMM16_X0_HW1_LAST_TLS_IE 102 /* X0 pipe last hword 1 IE off */ -+#define R_TILEGX_IMM16_X1_HW1_LAST_TLS_IE 103 /* X1 pipe last hword 1 IE off */ -+/* Relocs 104-105 are currently not defined. */ -+#define R_TILEGX_TLS_DTPMOD64 106 /* 64-bit ID of symbol's module */ -+#define R_TILEGX_TLS_DTPOFF64 107 /* 64-bit offset in TLS block */ -+#define R_TILEGX_TLS_TPOFF64 108 /* 64-bit offset in static TLS block */ -+#define R_TILEGX_TLS_DTPMOD32 109 /* 32-bit ID of symbol's module */ -+#define R_TILEGX_TLS_DTPOFF32 110 /* 32-bit offset in TLS block */ -+#define R_TILEGX_TLS_TPOFF32 111 /* 32-bit offset in static TLS block */ -+#define R_TILEGX_TLS_GD_CALL 112 /* "jal" for TLS GD */ -+#define R_TILEGX_IMM8_X0_TLS_GD_ADD 113 /* X0 pipe "addi" for TLS GD */ -+#define R_TILEGX_IMM8_X1_TLS_GD_ADD 114 /* X1 pipe "addi" for TLS GD */ -+#define R_TILEGX_IMM8_Y0_TLS_GD_ADD 115 /* Y0 pipe "addi" for TLS GD */ -+#define R_TILEGX_IMM8_Y1_TLS_GD_ADD 116 /* Y1 pipe "addi" for TLS GD */ -+#define R_TILEGX_TLS_IE_LOAD 117 /* "ld_tls" for TLS IE */ -+#define R_TILEGX_IMM8_X0_TLS_ADD 118 /* X0 pipe "addi" for TLS GD/IE */ -+#define R_TILEGX_IMM8_X1_TLS_ADD 119 /* X1 pipe "addi" for TLS GD/IE */ -+#define R_TILEGX_IMM8_Y0_TLS_ADD 120 /* Y0 pipe "addi" for TLS GD/IE */ -+#define R_TILEGX_IMM8_Y1_TLS_ADD 121 /* Y1 pipe "addi" for TLS GD/IE */ -+ -+#define R_TILEGX_GNU_VTINHERIT 128 /* GNU C++ vtable hierarchy */ -+#define R_TILEGX_GNU_VTENTRY 129 /* GNU C++ vtable member usage */ -+ -+#define R_TILEGX_NUM 130 -+ -+#endif /* elf.h */ ---- a/scripts/mod/mk_elfconfig.c -+++ b/scripts/mod/mk_elfconfig.c -@@ -2,7 +2,11 @@ - #include - #include - #include -+#ifndef __APPLE__ - #include -+#else -+#include "elf.h" -+#endif - - int - main(int argc, char **argv) ---- a/scripts/mod/modpost.h -+++ b/scripts/mod/modpost.h -@@ -9,7 +9,11 @@ - #include - #include - #include -+#if !(defined(__APPLE__) || defined(__CYGWIN__)) - #include -+#else -+#include "elf.h" -+#endif - #include "../../include/linux/module_symbol.h" - - #include "list.h" diff --git a/6.11/target/linux/generic/hack-6.11/211-darwin-uuid-typedef-clash.patch b/6.11/target/linux/generic/hack-6.11/211-darwin-uuid-typedef-clash.patch deleted file mode 100644 index c0e0b24e..00000000 --- a/6.11/target/linux/generic/hack-6.11/211-darwin-uuid-typedef-clash.patch +++ /dev/null @@ -1,22 +0,0 @@ -From e44fc2af1ddc452b6659d08c16973d65c73b7d0a Mon Sep 17 00:00:00 2001 -From: Kevin Darbyshire-Bryant -Date: Wed, 5 Feb 2020 18:36:43 +0000 -Subject: [PATCH] file2alias: build on macos - -Signed-off-by: Kevin Darbyshire-Bryant ---- - scripts/mod/file2alias.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- a/scripts/mod/file2alias.c -+++ b/scripts/mod/file2alias.c -@@ -35,6 +35,9 @@ typedef uint32_t __u32; - typedef uint16_t __u16; - typedef unsigned char __u8; - -+#ifdef __APPLE__ -+#define uuid_t compat_uuid_t -+#endif - /* UUID types for backward compatibility, don't use in new code */ - typedef struct { - __u8 b[16]; diff --git a/6.11/target/linux/generic/hack-6.11/214-spidev_h_portability.patch b/6.11/target/linux/generic/hack-6.11/214-spidev_h_portability.patch deleted file mode 100644 index db754a29..00000000 --- a/6.11/target/linux/generic/hack-6.11/214-spidev_h_portability.patch +++ /dev/null @@ -1,24 +0,0 @@ -From be9be95ff10e16a5b4ad36f903978d0cc5747024 Mon Sep 17 00:00:00 2001 -From: Felix Fietkau -Date: Fri, 7 Jul 2017 17:04:08 +0200 -Subject: kernel: fix linux/spi/spidev.h portability issues with musl - -Felix will try to get this define included into musl - -lede-commit: 795e7cf60de19e7a076a46874fab7bb88b43bbff -Signed-off-by: Felix Fietkau ---- - include/uapi/linux/spi/spidev.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/include/uapi/linux/spi/spidev.h -+++ b/include/uapi/linux/spi/spidev.h -@@ -93,7 +93,7 @@ struct spi_ioc_transfer { - - /* not all platforms use or _IOC_TYPECHECK() ... */ - #define SPI_MSGSIZE(N) \ -- ((((N)*(sizeof (struct spi_ioc_transfer))) < (1 << _IOC_SIZEBITS)) \ -+ ((((N)*(sizeof (struct spi_ioc_transfer))) < (1 << 13)) \ - ? ((N)*(sizeof (struct spi_ioc_transfer))) : 0) - #define SPI_IOC_MESSAGE(N) _IOW(SPI_IOC_MAGIC, 0, char[SPI_MSGSIZE(N)]) - diff --git a/6.11/target/linux/generic/hack-6.11/230-openwrt_lzma_options.patch b/6.11/target/linux/generic/hack-6.11/230-openwrt_lzma_options.patch deleted file mode 100644 index a22acafe..00000000 --- a/6.11/target/linux/generic/hack-6.11/230-openwrt_lzma_options.patch +++ /dev/null @@ -1,38 +0,0 @@ -From b3d00b452467f621317953d9e4c6f9ae8dcfd271 Mon Sep 17 00:00:00 2001 -From: Imre Kaloz -Date: Fri, 7 Jul 2017 17:06:55 +0200 -Subject: use the openwrt lzma options for now - -lede-commit: 548de949f392049420a6a1feeef118b30ab8ea8c -Signed-off-by: Imre Kaloz ---- - lib/decompress.c | 1 + - scripts/Makefile.lib | 2 +- - usr/gen_initramfs_list.sh | 10 +++++----- - 3 files changed, 7 insertions(+), 6 deletions(-) - ---- a/lib/decompress.c -+++ b/lib/decompress.c -@@ -53,6 +53,7 @@ static const struct compress_format comp - { {0x1f, 0x9e}, "gzip", gunzip }, - { {0x42, 0x5a}, "bzip2", bunzip2 }, - { {0x5d, 0x00}, "lzma", unlzma }, -+ { {0x6d, 0x00}, "lzma-openwrt", unlzma }, - { {0xfd, 0x37}, "xz", unxz }, - { {0x89, 0x4c}, "lzo", unlzo }, - { {0x02, 0x21}, "lz4", unlz4 }, ---- a/scripts/Makefile.lib -+++ b/scripts/Makefile.lib -@@ -456,10 +456,10 @@ quiet_cmd_bzip2_with_size = BZIP2 $@ - # --------------------------------------------------------------------------- - - quiet_cmd_lzma = LZMA $@ -- cmd_lzma = cat $(real-prereqs) | $(LZMA) -9 > $@ -+ cmd_lzma = cat $(real-prereqs) | $(LZMA) e -d20 -lc1 -lp2 -pb2 -eos -si -so > $@ - - quiet_cmd_lzma_with_size = LZMA $@ -- cmd_lzma_with_size = { cat $(real-prereqs) | $(LZMA) -9; $(size_append); } > $@ -+ cmd_lzma_with_size = { cat $(real-prereqs) | $(LZMA) e -d20 -lc1 -lp2 -pb2 -eos -si -so; $(size_append); } > $@ - - quiet_cmd_lzo = LZO $@ - cmd_lzo = cat $(real-prereqs) | $(KLZOP) -9 > $@ diff --git a/6.11/target/linux/generic/hack-6.11/250-netfilter_depends.patch b/6.11/target/linux/generic/hack-6.11/250-netfilter_depends.patch deleted file mode 100644 index 43faa995..00000000 --- a/6.11/target/linux/generic/hack-6.11/250-netfilter_depends.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: Felix Fietkau -Subject: hack: net: remove bogus netfilter dependencies - -lede-commit: 589d2a377dee27d206fc3725325309cf649e4df6 -Signed-off-by: Felix Fietkau ---- - net/netfilter/Kconfig | 2 -- - 1 file changed, 2 deletions(-) - ---- a/net/netfilter/Kconfig -+++ b/net/netfilter/Kconfig -@@ -259,7 +259,6 @@ config NF_CONNTRACK_FTP - - config NF_CONNTRACK_H323 - tristate "H.323 protocol support" -- depends on IPV6 || IPV6=n - depends on NETFILTER_ADVANCED - help - H.323 is a VoIP signalling protocol from ITU-T. As one of the most -@@ -1120,7 +1119,6 @@ config NETFILTER_XT_TARGET_SECMARK - - config NETFILTER_XT_TARGET_TCPMSS - tristate '"TCPMSS" target support' -- depends on IPV6 || IPV6=n - default m if NETFILTER_ADVANCED=n - help - This option adds a `TCPMSS' target, which allows you to alter the diff --git a/6.11/target/linux/generic/hack-6.11/251-kconfig.patch b/6.11/target/linux/generic/hack-6.11/251-kconfig.patch deleted file mode 100644 index 845cfbfc..00000000 --- a/6.11/target/linux/generic/hack-6.11/251-kconfig.patch +++ /dev/null @@ -1,157 +0,0 @@ -From da3c50704f14132f4adf80d48e9a4cd5d46e54c9 Mon Sep 17 00:00:00 2001 -From: John Crispin -Date: Fri, 7 Jul 2017 17:09:21 +0200 -Subject: kconfig: owrt specifc dependencies - -Signed-off-by: John Crispin ---- - crypto/Kconfig | 10 +++++----- - drivers/bcma/Kconfig | 1 + - drivers/ssb/Kconfig | 3 ++- - lib/Kconfig | 8 ++++---- - net/netfilter/Kconfig | 2 +- - net/wireless/Kconfig | 17 ++++++++++------- - sound/core/Kconfig | 4 ++-- - 7 files changed, 25 insertions(+), 20 deletions(-) - ---- a/crypto/Kconfig -+++ b/crypto/Kconfig -@@ -55,7 +55,7 @@ config CRYPTO_FIPS_VERSION - By default the KERNELRELEASE value is used. - - config CRYPTO_ALGAPI -- tristate -+ tristate "ALGAPI" - select CRYPTO_ALGAPI2 - help - This option provides the API for cryptographic algorithms. -@@ -64,7 +64,7 @@ config CRYPTO_ALGAPI2 - tristate - - config CRYPTO_AEAD -- tristate -+ tristate "AEAD" - select CRYPTO_AEAD2 - select CRYPTO_ALGAPI - -@@ -82,7 +82,7 @@ config CRYPTO_SIG2 - select CRYPTO_ALGAPI2 - - config CRYPTO_SKCIPHER -- tristate -+ tristate "SKCIPHER" - select CRYPTO_SKCIPHER2 - select CRYPTO_ALGAPI - -@@ -91,7 +91,7 @@ config CRYPTO_SKCIPHER2 - select CRYPTO_ALGAPI2 - - config CRYPTO_HASH -- tristate -+ tristate "HASH" - select CRYPTO_HASH2 - select CRYPTO_ALGAPI - -@@ -100,7 +100,7 @@ config CRYPTO_HASH2 - select CRYPTO_ALGAPI2 - - config CRYPTO_RNG -- tristate -+ tristate "RNG" - select CRYPTO_RNG2 - select CRYPTO_ALGAPI - ---- a/drivers/bcma/Kconfig -+++ b/drivers/bcma/Kconfig -@@ -16,6 +16,7 @@ if BCMA - # Support for Block-I/O. SELECT this from the driver that needs it. - config BCMA_BLOCKIO - bool -+ default y - - config BCMA_HOST_PCI_POSSIBLE - bool ---- a/drivers/ssb/Kconfig -+++ b/drivers/ssb/Kconfig -@@ -29,6 +29,7 @@ config SSB_SPROM - config SSB_BLOCKIO - bool - depends on SSB -+ default y - - config SSB_PCIHOST_POSSIBLE - bool -@@ -49,7 +50,7 @@ config SSB_PCIHOST - config SSB_B43_PCI_BRIDGE - bool - depends on SSB_PCIHOST -- default n -+ default y - - config SSB_PCMCIAHOST_POSSIBLE - bool ---- a/lib/Kconfig -+++ b/lib/Kconfig -@@ -460,16 +460,16 @@ config BCH_CONST_T - # Textsearch support is select'ed if needed - # - config TEXTSEARCH -- bool -+ bool "Textsearch support" - - config TEXTSEARCH_KMP -- tristate -+ tristate "Textsearch KMP" - - config TEXTSEARCH_BM -- tristate -+ tristate "Textsearch BM" - - config TEXTSEARCH_FSM -- tristate -+ tristate "Textsearch FSM" - - config BTREE - bool ---- a/net/netfilter/Kconfig -+++ b/net/netfilter/Kconfig -@@ -22,7 +22,7 @@ config NETFILTER_SKIP_EGRESS - def_bool NETFILTER_EGRESS && (NET_CLS_ACT || IFB) - - config NETFILTER_NETLINK -- tristate -+ tristate "Netfilter NFNETLINK interface" - - config NETFILTER_FAMILY_BRIDGE - bool ---- a/sound/core/Kconfig -+++ b/sound/core/Kconfig -@@ -17,7 +17,7 @@ config SND_DMAENGINE_PCM - tristate - - config SND_HWDEP -- tristate -+ tristate "Sound hardware support" - - config SND_SEQ_DEVICE - tristate -@@ -40,7 +40,7 @@ config SND_UMP_LEGACY_RAWMIDI - The device contains 16 substreams corresponding to UMP groups. - - config SND_COMPRESS_OFFLOAD -- tristate -+ tristate "Compression offloading support" - - config SND_JACK - bool ---- a/net/Kconfig -+++ b/net/Kconfig -@@ -467,7 +467,7 @@ config NET_DEVLINK - default n - - config PAGE_POOL -- bool -+ bool "Page pool support" - - config PAGE_POOL_STATS - default n diff --git a/6.11/target/linux/generic/hack-6.11/253-ksmbd-config.patch b/6.11/target/linux/generic/hack-6.11/253-ksmbd-config.patch deleted file mode 100644 index 298a0787..00000000 --- a/6.11/target/linux/generic/hack-6.11/253-ksmbd-config.patch +++ /dev/null @@ -1,32 +0,0 @@ -From dcd966fa7ca63f38cf7147e1184d13d66e2ca340 Mon Sep 17 00:00:00 2001 -From: OpenWrt community -Date: Wed, 13 Jul 2022 13:33:30 +0200 -Subject: [PATCH] Kconfig: add tristate for OID and ASNI string - ---- - init/Kconfig | 2 +- - lib/Kconfig | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - ---- a/init/Kconfig -+++ b/init/Kconfig -@@ -1989,7 +1989,7 @@ config PADATA - bool - - config ASN1 -- tristate -+ tristate "ASN1" - help - Build a simple ASN.1 grammar compiler that produces a bytecode output - that can be interpreted by the ASN.1 stream decoder and used to ---- a/lib/Kconfig -+++ b/lib/Kconfig -@@ -647,7 +647,7 @@ config LIBFDT - bool - - config OID_REGISTRY -- tristate -+ tristate "OID" - help - Enable fast lookup object identifier registry. - diff --git a/6.11/target/linux/generic/hack-6.11/259-regmap_dynamic.patch b/6.11/target/linux/generic/hack-6.11/259-regmap_dynamic.patch deleted file mode 100644 index cb93c96d..00000000 --- a/6.11/target/linux/generic/hack-6.11/259-regmap_dynamic.patch +++ /dev/null @@ -1,156 +0,0 @@ -From 811d9e2268a62b830cfe93cd8bc929afcb8b198b Mon Sep 17 00:00:00 2001 -From: Felix Fietkau -Date: Sat, 15 Jul 2017 21:12:38 +0200 -Subject: kernel: move regmap bloat out of the kernel image if it is only being used in modules - -lede-commit: 96f39119815028073583e4fca3a9c5fe9141e998 -Signed-off-by: Felix Fietkau ---- - drivers/base/regmap/Kconfig | 15 ++++++++++----- - drivers/base/regmap/Makefile | 12 ++++++++---- - drivers/base/regmap/regmap.c | 3 +++ - include/linux/regmap.h | 2 +- - 4 files changed, 22 insertions(+), 10 deletions(-) - ---- a/drivers/base/regmap/Kconfig -+++ b/drivers/base/regmap/Kconfig -@@ -4,8 +4,7 @@ - # subsystems should select the appropriate symbols. - - config REGMAP -- bool -- default y if (REGMAP_I2C || REGMAP_SPI || REGMAP_SPMI || REGMAP_W1 || REGMAP_AC97 || REGMAP_MMIO || REGMAP_IRQ || REGMAP_SOUNDWIRE || REGMAP_SOUNDWIRE_MBQ || REGMAP_SCCB || REGMAP_I3C || REGMAP_SPI_AVMM || REGMAP_MDIO || REGMAP_FSI) -+ tristate - select IRQ_DOMAIN if REGMAP_IRQ - select MDIO_BUS if REGMAP_MDIO - help -@@ -19,7 +18,7 @@ config REGMAP - - config REGMAP_KUNIT - tristate "KUnit tests for regmap" -- depends on KUNIT && REGMAP -+ depends on KUNIT - default KUNIT_ALL_TESTS - select REGMAP_RAM - -@@ -34,60 +33,76 @@ config REGMAP_BUILD - normally enabled. - - config REGMAP_AC97 -+ select REGMAP - tristate - - config REGMAP_I2C -+ select REGMAP - tristate - depends on I2C - - config REGMAP_SLIMBUS -+ select REGMAP - tristate - depends on SLIMBUS - - config REGMAP_SPI -+ select REGMAP - tristate - depends on SPI - - config REGMAP_SPMI -+ select REGMAP - tristate - depends on SPMI - - config REGMAP_W1 -+ select REGMAP - tristate - depends on W1 - - config REGMAP_MDIO -+ select REGMAP - tristate - - config REGMAP_MMIO -+ select REGMAP - tristate - - config REGMAP_IRQ -+ select REGMAP - bool - - config REGMAP_RAM -+ select REGMAP - tristate - - config REGMAP_SOUNDWIRE -+ select REGMAP - tristate - depends on SOUNDWIRE - - config REGMAP_SOUNDWIRE_MBQ -+ select REGMAP - tristate - depends on SOUNDWIRE - - config REGMAP_SCCB -+ select REGMAP - tristate - depends on I2C - - config REGMAP_I3C -+ select REGMAP - tristate - depends on I3C - - config REGMAP_SPI_AVMM -+ select REGMAP - tristate - depends on SPI - - config REGMAP_FSI -+ select REGMAP - tristate - depends on FSI ---- a/drivers/base/regmap/Makefile -+++ b/drivers/base/regmap/Makefile -@@ -2,9 +2,11 @@ - # For include/trace/define_trace.h to include trace.h - CFLAGS_regmap.o := -I$(src) - --obj-$(CONFIG_REGMAP) += regmap.o regcache.o --obj-$(CONFIG_REGMAP) += regcache-rbtree.o regcache-flat.o regcache-maple.o --obj-$(CONFIG_DEBUG_FS) += regmap-debugfs.o -+regmap-core-objs = regmap.o regcache.o regcache-rbtree.o regcache-flat.o regcache-maple.o -+ifdef CONFIG_DEBUG_FS -+regmap-core-objs += regmap-debugfs.o -+endif -+obj-$(CONFIG_REGMAP) += regmap-core.o - obj-$(CONFIG_REGMAP_KUNIT) += regmap-kunit.o - obj-$(CONFIG_REGMAP_AC97) += regmap-ac97.o - obj-$(CONFIG_REGMAP_I2C) += regmap-i2c.o ---- a/drivers/base/regmap/regmap.c -+++ b/drivers/base/regmap/regmap.c -@@ -9,6 +9,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -3470,3 +3471,5 @@ static int __init regmap_initcall(void) - return 0; - } - postcore_initcall(regmap_initcall); -+ -+MODULE_LICENSE("GPL"); ---- a/include/linux/regmap.h -+++ b/include/linux/regmap.h -@@ -197,7 +197,7 @@ struct reg_sequence { - __ret ?: __tmp; \ - }) - --#ifdef CONFIG_REGMAP -+#if IS_REACHABLE(CONFIG_REGMAP) - - enum regmap_endian { - /* Unspecified -> 0 -> Backwards compatible default */ diff --git a/6.11/target/linux/generic/hack-6.11/260-crypto_test_dependencies.patch b/6.11/target/linux/generic/hack-6.11/260-crypto_test_dependencies.patch deleted file mode 100644 index 6221d0f8..00000000 --- a/6.11/target/linux/generic/hack-6.11/260-crypto_test_dependencies.patch +++ /dev/null @@ -1,54 +0,0 @@ -From fd1799b0bf5efa46dd3e6dfbbf3955564807e508 Mon Sep 17 00:00:00 2001 -From: Felix Fietkau -Date: Fri, 7 Jul 2017 17:12:51 +0200 -Subject: kernel: prevent cryptomgr from pulling in useless extra dependencies for tests that are not run - -Reduces kernel size after LZMA by about 5k on MIPS - -lede-commit: 044c316167e076479a344c59905e5b435b84a77f -Signed-off-by: Felix Fietkau ---- - crypto/Kconfig | 13 ++++++------- - crypto/algboss.c | 4 ++++ - 2 files changed, 10 insertions(+), 7 deletions(-) - ---- a/crypto/Kconfig -+++ b/crypto/Kconfig -@@ -148,15 +148,15 @@ config CRYPTO_MANAGER - cbc(aes). - - config CRYPTO_MANAGER2 -- def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y) -- select CRYPTO_ACOMP2 -- select CRYPTO_AEAD2 -- select CRYPTO_AKCIPHER2 -- select CRYPTO_SIG2 -- select CRYPTO_HASH2 -- select CRYPTO_KPP2 -- select CRYPTO_RNG2 -- select CRYPTO_SKCIPHER2 -+ def_tristate CRYPTO_MANAGER || (CRYPTO_MANAGER!=n && CRYPTO_ALGAPI=y && !CRYPTO_MANAGER_DISABLE_TESTS) -+ select CRYPTO_ACOMP2 if !CRYPTO_MANAGER_DISABLE_TESTS -+ select CRYPTO_AEAD2 if !CRYPTO_MANAGER_DISABLE_TESTS -+ select CRYPTO_AKCIPHER2 if !CRYPTO_MANAGER_DISABLE_TESTS -+ select CRYPTO_SIG2 if !CRYPTO_MANAGER_DISABLE_TESTS -+ select CRYPTO_HASH2 if !CRYPTO_MANAGER_DISABLE_TESTS -+ select CRYPTO_KPP2 if !CRYPTO_MANAGER_DISABLE_TESTS -+ select CRYPTO_RNG2 if !CRYPTO_MANAGER_DISABLE_TESTS -+ select CRYPTO_SKCIPHER2 if !CRYPTO_MANAGER_DISABLE_TESTS - - config CRYPTO_USER - tristate "Userspace cryptographic algorithm configuration" ---- a/crypto/algboss.c -+++ b/crypto/algboss.c -@@ -204,6 +204,10 @@ static int cryptomgr_schedule_test(struc - memcpy(param->alg, alg->cra_name, sizeof(param->alg)); - param->type = alg->cra_flags; - -+#ifdef CONFIG_CRYPTO_MANAGER_DISABLE_TESTS -+ param->type |= CRYPTO_ALG_TESTED; -+#endif -+ - thread = kthread_run(cryptomgr_test, param, "cryptomgr_test"); - if (IS_ERR(thread)) - goto err_free_param; diff --git a/6.11/target/linux/generic/hack-6.11/261-lib-arc4-unhide.patch b/6.11/target/linux/generic/hack-6.11/261-lib-arc4-unhide.patch deleted file mode 100644 index af1d2862..00000000 --- a/6.11/target/linux/generic/hack-6.11/261-lib-arc4-unhide.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 241e5d3f7b0dd3c01f8c7fa83cbc9a3882286d53 Mon Sep 17 00:00:00 2001 -From: OpenWrt community -Date: Wed, 13 Jul 2022 13:35:18 +0200 -Subject: [PATCH] lib/crypto: add tristate string for ARC4 - -This makes it possible to select CONFIG_CRYPTO_LIB_ARC4 directly. We -need this to be able to compile this into the kernel and make use of it -from backports. - ---- - lib/crypto/Kconfig | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/lib/crypto/Kconfig -+++ b/lib/crypto/Kconfig -@@ -15,7 +15,7 @@ config CRYPTO_LIB_AESGCM - select CRYPTO_LIB_UTILS - - config CRYPTO_LIB_ARC4 -- tristate -+ tristate "ARC4 cipher library" - - config CRYPTO_LIB_GF128MUL - tristate diff --git a/6.11/target/linux/generic/hack-6.11/280-rfkill-stubs.patch b/6.11/target/linux/generic/hack-6.11/280-rfkill-stubs.patch deleted file mode 100644 index 7a650d13..00000000 --- a/6.11/target/linux/generic/hack-6.11/280-rfkill-stubs.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 236c1acdfef5958010ac9814a9872e0a46fd78ee Mon Sep 17 00:00:00 2001 -From: John Crispin -Date: Fri, 7 Jul 2017 17:13:44 +0200 -Subject: rfkill: add fake rfkill support - -allow building of modules depending on RFKILL even if RFKILL is not enabled. - -Signed-off-by: John Crispin ---- - include/linux/rfkill.h | 2 +- - net/Makefile | 2 +- - net/rfkill/Kconfig | 14 +++++++++----- - net/rfkill/Makefile | 2 +- - 4 files changed, 12 insertions(+), 8 deletions(-) - ---- a/include/linux/rfkill.h -+++ b/include/linux/rfkill.h -@@ -64,7 +64,7 @@ struct rfkill_ops { - int (*set_block)(void *data, bool blocked); - }; - --#if defined(CONFIG_RFKILL) || defined(CONFIG_RFKILL_MODULE) -+#if defined(CONFIG_RFKILL_FULL) || defined(CONFIG_RFKILL_FULL_MODULE) - /** - * rfkill_alloc - Allocate rfkill structure - * @name: name of the struct -- the string is not copied internally ---- a/net/Makefile -+++ b/net/Makefile -@@ -52,7 +52,7 @@ obj-$(CONFIG_TIPC) += tipc/ - obj-$(CONFIG_NETLABEL) += netlabel/ - obj-$(CONFIG_IUCV) += iucv/ - obj-$(CONFIG_SMC) += smc/ --obj-$(CONFIG_RFKILL) += rfkill/ -+obj-$(CONFIG_RFKILL_FULL) += rfkill/ - obj-$(CONFIG_NET_9P) += 9p/ - obj-$(CONFIG_CAIF) += caif/ - obj-$(CONFIG_DCB) += dcb/ ---- a/net/rfkill/Kconfig -+++ b/net/rfkill/Kconfig -@@ -2,7 +2,11 @@ - # - # RF switch subsystem configuration - # --menuconfig RFKILL -+config RFKILL -+ bool -+ default y -+ -+menuconfig RFKILL_FULL - tristate "RF switch subsystem support" - help - Say Y here if you want to have control over RF switches -@@ -14,19 +18,19 @@ menuconfig RFKILL - # LED trigger support - config RFKILL_LEDS - bool -- depends on RFKILL -+ depends on RFKILL_FULL - depends on LEDS_TRIGGERS = y || RFKILL = LEDS_TRIGGERS - default y - - config RFKILL_INPUT - bool "RF switch input support" if EXPERT -- depends on RFKILL -+ depends on RFKILL_FULL - depends on INPUT = y || RFKILL = INPUT - default y if !EXPERT - - config RFKILL_GPIO - tristate "GPIO RFKILL driver" -- depends on RFKILL -+ depends on RFKILL_FULL - depends on GPIOLIB || COMPILE_TEST - default n - help ---- a/net/rfkill/Makefile -+++ b/net/rfkill/Makefile -@@ -5,5 +5,5 @@ - - rfkill-y += core.o - rfkill-$(CONFIG_RFKILL_INPUT) += input.o --obj-$(CONFIG_RFKILL) += rfkill.o -+obj-$(CONFIG_RFKILL_FULL) += rfkill.o - obj-$(CONFIG_RFKILL_GPIO) += rfkill-gpio.o diff --git a/6.11/target/linux/generic/hack-6.11/300-MIPS-r4k_cache-use-more-efficient-cache-blast.patch b/6.11/target/linux/generic/hack-6.11/300-MIPS-r4k_cache-use-more-efficient-cache-blast.patch deleted file mode 100644 index f21f2001..00000000 --- a/6.11/target/linux/generic/hack-6.11/300-MIPS-r4k_cache-use-more-efficient-cache-blast.patch +++ /dev/null @@ -1,64 +0,0 @@ -From: Ben Menchaca -Date: Fri, 7 Jun 2013 18:35:22 -0500 -Subject: MIPS: r4k_cache: use more efficient cache blast - -Optimize the compiler output for larger cache blast cases that are -common for DMA-based networking. - -Signed-off-by: Ben Menchaca -Signed-off-by: Felix Fietkau ---- ---- a/arch/mips/include/asm/r4kcache.h -+++ b/arch/mips/include/asm/r4kcache.h -@@ -286,14 +286,46 @@ static inline void prot##extra##blast_## - unsigned long end) \ - { \ - unsigned long lsize = cpu_##desc##_line_size(); \ -+ unsigned long lsize_2 = lsize * 2; \ -+ unsigned long lsize_3 = lsize * 3; \ -+ unsigned long lsize_4 = lsize * 4; \ -+ unsigned long lsize_5 = lsize * 5; \ -+ unsigned long lsize_6 = lsize * 6; \ -+ unsigned long lsize_7 = lsize * 7; \ -+ unsigned long lsize_8 = lsize * 8; \ - unsigned long addr = start & ~(lsize - 1); \ -- unsigned long aend = (end - 1) & ~(lsize - 1); \ -+ unsigned long aend = (end + lsize - 1) & ~(lsize - 1); \ -+ int lines = (aend - addr) / lsize; \ - \ -- while (1) { \ -+ while (lines >= 8) { \ -+ prot##cache_op(hitop, addr); \ -+ prot##cache_op(hitop, addr + lsize); \ -+ prot##cache_op(hitop, addr + lsize_2); \ -+ prot##cache_op(hitop, addr + lsize_3); \ -+ prot##cache_op(hitop, addr + lsize_4); \ -+ prot##cache_op(hitop, addr + lsize_5); \ -+ prot##cache_op(hitop, addr + lsize_6); \ -+ prot##cache_op(hitop, addr + lsize_7); \ -+ addr += lsize_8; \ -+ lines -= 8; \ -+ } \ -+ \ -+ if (lines & 0x4) { \ -+ prot##cache_op(hitop, addr); \ -+ prot##cache_op(hitop, addr + lsize); \ -+ prot##cache_op(hitop, addr + lsize_2); \ -+ prot##cache_op(hitop, addr + lsize_3); \ -+ addr += lsize_4; \ -+ } \ -+ \ -+ if (lines & 0x2) { \ -+ prot##cache_op(hitop, addr); \ -+ prot##cache_op(hitop, addr + lsize); \ -+ addr += lsize_2; \ -+ } \ -+ \ -+ if (lines & 0x1) { \ - prot##cache_op(hitop, addr); \ -- if (addr == aend) \ -- break; \ -- addr += lsize; \ - } \ - } - diff --git a/6.11/target/linux/generic/hack-6.11/402-mtd-blktrans-call-add-disks-after-mtd-device.patch b/6.11/target/linux/generic/hack-6.11/402-mtd-blktrans-call-add-disks-after-mtd-device.patch deleted file mode 100644 index 24b7963c..00000000 --- a/6.11/target/linux/generic/hack-6.11/402-mtd-blktrans-call-add-disks-after-mtd-device.patch +++ /dev/null @@ -1,112 +0,0 @@ -From 0bccc3722bdd88e8ae995e77ef9f7b77ee4cbdee Mon Sep 17 00:00:00 2001 -From: Daniel Golle -Date: Wed, 7 Apr 2021 22:45:54 +0100 -Subject: [PATCH 2/2] mtd: blktrans: call add disks after mtd device -To: linux-mtd@lists.infradead.org -Cc: Vignesh Raghavendra , - Richard Weinberger , - Miquel Raynal , - David Woodhouse - -Calling device_add_disk while holding mtd_table_mutex leads -to deadlock in case part_bits!=0 as block partition parsers -will try to open the newly created disks, trying to acquire -mutex once again. -Move device_add_disk to additional function called after -add partitions of an MTD device have been added and locks -have been released. - -Signed-off-by: Daniel Golle ---- - drivers/mtd/mtd_blkdevs.c | 33 ++++++++++++++++++++++++++------- - drivers/mtd/mtdcore.c | 3 +++ - include/linux/mtd/blktrans.h | 1 + - 3 files changed, 30 insertions(+), 7 deletions(-) - ---- a/drivers/mtd/mtd_blkdevs.c -+++ b/drivers/mtd/mtd_blkdevs.c -@@ -386,19 +386,8 @@ int add_mtd_blktrans_dev(struct mtd_blkt - if (new->readonly) - set_disk_ro(gd, 1); - -- ret = device_add_disk(&new->mtd->dev, gd, NULL); -- if (ret) -- goto out_cleanup_disk; -- -- if (new->disk_attributes) { -- ret = sysfs_create_group(&disk_to_dev(gd)->kobj, -- new->disk_attributes); -- WARN_ON(ret); -- } - return 0; - --out_cleanup_disk: -- put_disk(new->disk); - out_free_tag_set: - blk_mq_free_tag_set(new->tag_set); - out_kfree_tag_set: -@@ -408,6 +397,35 @@ out_list_del: - return ret; - } - -+void register_mtd_blktrans_devs(void) -+{ -+ struct mtd_blktrans_ops *tr; -+ struct mtd_blktrans_dev *dev, *next; -+ int ret; -+ -+ list_for_each_entry(tr, &blktrans_majors, list) { -+ list_for_each_entry_safe(dev, next, &tr->devs, list) { -+ if (disk_live(dev->disk)) -+ continue; -+ -+ ret = device_add_disk(&dev->mtd->dev, dev->disk, NULL); -+ if (ret) -+ goto out_cleanup_disk; -+ -+ if (dev->disk_attributes) { -+ ret = sysfs_create_group(&disk_to_dev(dev->disk)->kobj, -+ dev->disk_attributes); -+ WARN_ON(ret); -+ } -+ } -+ } -+ -+ return; -+ -+out_cleanup_disk: -+ put_disk(dev->disk); -+} -+ - int del_mtd_blktrans_dev(struct mtd_blktrans_dev *old) - { - unsigned long flags; ---- a/drivers/mtd/mtdcore.c -+++ b/drivers/mtd/mtdcore.c -@@ -33,6 +33,7 @@ - - #include - #include -+#include - - #include "mtdcore.h" - -@@ -1127,6 +1128,8 @@ int mtd_device_parse_register(struct mtd - register_reboot_notifier(&mtd->reboot_notifier); - } - -+ register_mtd_blktrans_devs(); -+ - out: - if (ret) { - nvmem_unregister(mtd->otp_user_nvmem); ---- a/include/linux/mtd/blktrans.h -+++ b/include/linux/mtd/blktrans.h -@@ -76,6 +76,7 @@ extern int deregister_mtd_blktrans(struc - extern int add_mtd_blktrans_dev(struct mtd_blktrans_dev *dev); - extern int del_mtd_blktrans_dev(struct mtd_blktrans_dev *dev); - extern int mtd_blktrans_cease_background(struct mtd_blktrans_dev *dev); -+extern void register_mtd_blktrans_devs(void); - - /** - * module_mtd_blktrans() - Helper macro for registering a mtd blktrans driver diff --git a/6.11/target/linux/generic/hack-6.11/421-drivers-mtd-parsers-add-nvmem-support-to-cmdlinepart.patch b/6.11/target/linux/generic/hack-6.11/421-drivers-mtd-parsers-add-nvmem-support-to-cmdlinepart.patch deleted file mode 100644 index 965a331a..00000000 --- a/6.11/target/linux/generic/hack-6.11/421-drivers-mtd-parsers-add-nvmem-support-to-cmdlinepart.patch +++ /dev/null @@ -1,120 +0,0 @@ -From 6fa9e3678eb002246df1280322b6a024853950a5 Mon Sep 17 00:00:00 2001 -From: Ansuel Smith -Date: Mon, 11 Oct 2021 00:53:14 +0200 -Subject: [PATCH] drivers: mtd: parsers: add nvmem support to cmdlinepart - -Assuming cmdlinepart is only one level deep partition scheme and that -static partition are also defined in DTS, we can assign an of_node for -partition declared from bootargs. cmdlinepart have priority than -fiexed-partition parser so in this specific case the parser doesn't -assign an of_node. Fix this by searching a defined of_node using a -similar fixed_partition parser and if a partition is found with the same -label, check that it has the same offset and size and return the DT -of_node to correctly use NVMEM cells. - -Signed-off-by: Ansuel Smith ---- - drivers/mtd/parsers/cmdlinepart.c | 71 +++++++++++++++++++++++++++++++ - 1 file changed, 71 insertions(+) - ---- a/drivers/mtd/parsers/cmdlinepart.c -+++ b/drivers/mtd/parsers/cmdlinepart.c -@@ -43,6 +43,7 @@ - #include - #include - #include -+#include - - /* debug macro */ - #if 0 -@@ -323,6 +324,68 @@ static int mtdpart_setup_real(char *s) - return 0; - } - -+static int search_fixed_partition(struct mtd_info *master, -+ struct mtd_partition *target_part, -+ struct mtd_partition *fixed_part) -+{ -+ struct device_node *mtd_node; -+ struct device_node *ofpart_node; -+ struct device_node *pp; -+ struct mtd_partition part; -+ const char *partname; -+ -+ mtd_node = mtd_get_of_node(master); -+ if (!mtd_node) -+ return -EINVAL; -+ -+ ofpart_node = of_get_child_by_name(mtd_node, "partitions"); -+ -+ for_each_child_of_node(ofpart_node, pp) { -+ const __be32 *reg; -+ int len; -+ int a_cells, s_cells; -+ -+ reg = of_get_property(pp, "reg", &len); -+ if (!reg) { -+ pr_debug("%s: ofpart partition %pOF (%pOF) missing reg property.\n", -+ master->name, pp, -+ mtd_node); -+ continue; -+ } -+ -+ a_cells = of_n_addr_cells(pp); -+ s_cells = of_n_size_cells(pp); -+ if (len / 4 != a_cells + s_cells) { -+ pr_debug("%s: ofpart partition %pOF (%pOF) error parsing reg property.\n", -+ master->name, pp, -+ mtd_node); -+ continue; -+ } -+ -+ part.offset = of_read_number(reg, a_cells); -+ part.size = of_read_number(reg + a_cells, s_cells); -+ part.of_node = pp; -+ -+ partname = of_get_property(pp, "label", &len); -+ if (!partname) -+ partname = of_get_property(pp, "name", &len); -+ part.name = partname; -+ -+ if (!strncmp(target_part->name, part.name, len)) { -+ if (part.offset != target_part->offset) -+ return -EINVAL; -+ -+ if (part.size != target_part->size) -+ return -EINVAL; -+ -+ memcpy(fixed_part, &part, sizeof(struct mtd_partition)); -+ return 0; -+ } -+ } -+ -+ return -EINVAL; -+} -+ - /* - * Main function to be called from the MTD mapping driver/device to - * obtain the partitioning information. At this point the command line -@@ -338,6 +401,7 @@ static int parse_cmdline_partitions(stru - int i, err; - struct cmdline_mtd_partition *part; - const char *mtd_id = master->name; -+ struct mtd_partition fixed_part; - - /* parse command line */ - if (!cmdline_parsed) { -@@ -382,6 +446,13 @@ static int parse_cmdline_partitions(stru - sizeof(*part->parts) * (part->num_parts - i)); - i--; - } -+ -+ err = search_fixed_partition(master, &part->parts[i], &fixed_part); -+ if (!err) { -+ part->parts[i].of_node = fixed_part.of_node; -+ pr_info("Found partition defined in DT for %s. Assigning OF node to support nvmem.", -+ part->parts[i].name); -+ } - } - - *pparts = kmemdup(part->parts, sizeof(*part->parts) * part->num_parts, diff --git a/6.11/target/linux/generic/hack-6.11/430-mtk-bmt-support.patch b/6.11/target/linux/generic/hack-6.11/430-mtk-bmt-support.patch deleted file mode 100644 index 1e69ee64..00000000 --- a/6.11/target/linux/generic/hack-6.11/430-mtk-bmt-support.patch +++ /dev/null @@ -1,33 +0,0 @@ -From ac84397efb3b3868c71c10ad7521161773228a17 Mon Sep 17 00:00:00 2001 -From: OpenWrt community -Date: Wed, 13 Jul 2022 13:41:44 +0200 -Subject: [PATCH] mtd/nand: add MediaTek NAND bad block managment table - ---- - drivers/mtd/nand/Kconfig | 4 ++++ - drivers/mtd/nand/Makefile | 1 + - 2 files changed, 5 insertions(+) - ---- a/drivers/mtd/nand/Kconfig -+++ b/drivers/mtd/nand/Kconfig -@@ -46,6 +46,10 @@ config MTD_NAND_ECC_SW_BCH - ECC codes. They are used with NAND devices requiring more than 1 bit - of error correction. - -+config MTD_NAND_MTK_BMT -+ bool "Support MediaTek NAND Bad-block Management Table" -+ default n -+ - config MTD_NAND_ECC_MXIC - bool "Macronix external hardware ECC engine" - depends on HAS_IOMEM ---- a/drivers/mtd/nand/Makefile -+++ b/drivers/mtd/nand/Makefile -@@ -3,6 +3,7 @@ - nandcore-objs := core.o bbt.o - obj-$(CONFIG_MTD_NAND_CORE) += nandcore.o - obj-$(CONFIG_MTD_NAND_ECC_MEDIATEK) += ecc-mtk.o -+obj-$(CONFIG_MTD_NAND_MTK_BMT) += mtk_bmt.o mtk_bmt_v2.o mtk_bmt_bbt.o mtk_bmt_nmbm.o - - obj-y += onenand/ - obj-y += raw/ diff --git a/6.11/target/linux/generic/hack-6.11/600-net-enable-fraglist-GRO-by-default.patch b/6.11/target/linux/generic/hack-6.11/600-net-enable-fraglist-GRO-by-default.patch deleted file mode 100644 index 51f99003..00000000 --- a/6.11/target/linux/generic/hack-6.11/600-net-enable-fraglist-GRO-by-default.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: Felix Fietkau -Date: Tue, 23 Apr 2024 12:35:21 +0200 -Subject: [PATCH] net: enable fraglist GRO by default - -This can significantly improve performance for packet forwarding/bridging - -Signed-off-by: Felix Fietkau ---- - ---- a/include/linux/netdev_features.h -+++ b/include/linux/netdev_features.h -@@ -242,10 +242,10 @@ static inline int find_next_netdev_featu - #define NETIF_F_UPPER_DISABLES NETIF_F_LRO - - /* changeable features with no special hardware requirements */ --#define NETIF_F_SOFT_FEATURES (NETIF_F_GSO | NETIF_F_GRO) -+#define NETIF_F_SOFT_FEATURES (NETIF_F_GSO | NETIF_F_GRO | NETIF_F_GRO_FRAGLIST) - - /* Changeable features with no special hardware requirements that defaults to off. */ --#define NETIF_F_SOFT_FEATURES_OFF (NETIF_F_GRO_FRAGLIST | NETIF_F_GRO_UDP_FWD) -+#define NETIF_F_SOFT_FEATURES_OFF (NETIF_F_GRO_UDP_FWD) - - #define NETIF_F_VLAN_FEATURES (NETIF_F_HW_VLAN_CTAG_FILTER | \ - NETIF_F_HW_VLAN_CTAG_RX | \ diff --git a/6.11/target/linux/generic/hack-6.11/645-netfilter-connmark-introduce-set-dscpmark.patch b/6.11/target/linux/generic/hack-6.11/645-netfilter-connmark-introduce-set-dscpmark.patch deleted file mode 100644 index 444f8edf..00000000 --- a/6.11/target/linux/generic/hack-6.11/645-netfilter-connmark-introduce-set-dscpmark.patch +++ /dev/null @@ -1,214 +0,0 @@ -From eda40b8c8c82e0f2789d6bc8bf63846dce2e8f32 Mon Sep 17 00:00:00 2001 -From: Kevin Darbyshire-Bryant -Date: Sat, 23 Mar 2019 09:29:49 +0000 -Subject: [PATCH] netfilter: connmark: introduce set-dscpmark - -set-dscpmark is a method of storing the DSCP of an ip packet into -conntrack mark. In combination with a suitable tc filter action -(act_ctinfo) DSCP values are able to be stored in the mark on egress and -restored on ingress across links that otherwise alter or bleach DSCP. - -This is useful for qdiscs such as CAKE which are able to shape according -to policies based on DSCP. - -Ingress classification is traditionally a challenging task since -iptables rules haven't yet run and tc filter/eBPF programs are pre-NAT -lookups, hence are unable to see internal IPv4 addresses as used on the -typical home masquerading gateway. - -x_tables CONNMARK set-dscpmark target solves the problem of storing the -DSCP to the conntrack mark in a way suitable for the new act_ctinfo tc -action to restore. - -The set-dscpmark option accepts 2 parameters, a 32bit 'dscpmask' and a -32bit 'statemask'. The dscp mask must be 6 contiguous bits and -represents the area where the DSCP will be stored in the connmark. The -state mask is a minimum 1 bit length mask that must not overlap with the -dscpmask. It represents a flag which is set when the DSCP has been -stored in the conntrack mark. This is useful to implement a 'one shot' -iptables based classification where the 'complicated' iptables rules are -only run once to classify the connection on initial (egress) packet and -subsequent packets are all marked/restored with the same DSCP. A state -mask of zero disables the setting of a status bit/s. - -example syntax with a suitably modified iptables user space application: - -iptables -A QOS_MARK_eth0 -t mangle -j CONNMARK --set-dscpmark 0xfc000000/0x01000000 - -Would store the DSCP in the top 6 bits of the 32bit mark field, and use -the LSB of the top byte as the 'DSCP has been stored' marker. - -|----0xFC----conntrack mark----000000---| -| Bits 31-26 | bit 25 | bit24 |~~~ Bit 0| -| DSCP | unused | flag |unused | -|-----------------------0x01---000000---| - ^ ^ - | | - ---| Conditional flag - | set this when dscp -|-ip diffserv-| stored in mark -| 6 bits | -|-------------| - -an identically configured tc action to restore looks like: - -tc filter show dev eth0 ingress -filter parent ffff: protocol all pref 10 u32 chain 0 -filter parent ffff: protocol all pref 10 u32 chain 0 fh 800: ht divisor 1 -filter parent ffff: protocol all pref 10 u32 chain 0 fh 800::800 order 2048 key ht 800 bkt 0 flowid 1: not_in_hw - match 00000000/00000000 at 0 - action order 1: ctinfo zone 0 pipe - index 2 ref 1 bind 1 dscp 0xfc000000/0x1000000 - - action order 2: mirred (Egress Redirect to device ifb4eth0) stolen - index 1 ref 1 bind 1 - -|----0xFC----conntrack mark----000000---| -| Bits 31-26 | bit 25 | bit24 |~~~ Bit 0| -| DSCP | unused | flag |unused | -|-----------------------0x01---000000---| - | | - | | - ---| Conditional flag - v only restore if set -|-ip diffserv-| -| 6 bits | -|-------------| - -Signed-off-by: Kevin Darbyshire-Bryant ---- - include/uapi/linux/netfilter/xt_connmark.h | 10 ++++ - net/netfilter/xt_connmark.c | 55 ++++++++++++++++++---- - 2 files changed, 57 insertions(+), 8 deletions(-) - ---- a/include/uapi/linux/netfilter/xt_connmark.h -+++ b/include/uapi/linux/netfilter/xt_connmark.h -@@ -15,6 +15,11 @@ enum { - }; - - enum { -+ XT_CONNMARK_VALUE = (1 << 0), -+ XT_CONNMARK_DSCP = (1 << 1) -+}; -+ -+enum { - D_SHIFT_LEFT = 0, - D_SHIFT_RIGHT, - }; -@@ -29,6 +34,11 @@ struct xt_connmark_tginfo2 { - __u8 shift_dir, shift_bits, mode; - }; - -+struct xt_connmark_tginfo3 { -+ __u32 ctmark, ctmask, nfmask; -+ __u8 shift_dir, shift_bits, mode, func; -+}; -+ - struct xt_connmark_mtinfo1 { - __u32 mark, mask; - __u8 invert; ---- a/net/netfilter/xt_connmark.c -+++ b/net/netfilter/xt_connmark.c -@@ -24,13 +24,13 @@ MODULE_ALIAS("ipt_connmark"); - MODULE_ALIAS("ip6t_connmark"); - - static unsigned int --connmark_tg_shift(struct sk_buff *skb, const struct xt_connmark_tginfo2 *info) -+connmark_tg_shift(struct sk_buff *skb, const struct xt_connmark_tginfo3 *info) - { - enum ip_conntrack_info ctinfo; - u_int32_t new_targetmark; - struct nf_conn *ct; - u_int32_t newmark; -- u_int32_t oldmark; -+ u_int8_t dscp; - - ct = nf_ct_get(skb, &ctinfo); - if (ct == NULL) -@@ -38,13 +38,24 @@ connmark_tg_shift(struct sk_buff *skb, c - - switch (info->mode) { - case XT_CONNMARK_SET: -- oldmark = READ_ONCE(ct->mark); -- newmark = (oldmark & ~info->ctmask) ^ info->ctmark; -- if (info->shift_dir == D_SHIFT_RIGHT) -- newmark >>= info->shift_bits; -- else -- newmark <<= info->shift_bits; -+ newmark = READ_ONCE(ct->mark); -+ if (info->func & XT_CONNMARK_VALUE) { -+ newmark = (newmark & ~info->ctmask) ^ info->ctmark; -+ if (info->shift_dir == D_SHIFT_RIGHT) -+ newmark >>= info->shift_bits; -+ else -+ newmark <<= info->shift_bits; -+ } else if (info->func & XT_CONNMARK_DSCP) { -+ if (skb->protocol == htons(ETH_P_IP)) -+ dscp = ipv4_get_dsfield(ip_hdr(skb)) >> 2; -+ else if (skb->protocol == htons(ETH_P_IPV6)) -+ dscp = ipv6_get_dsfield(ipv6_hdr(skb)) >> 2; -+ else /* protocol doesn't have diffserv */ -+ break; - -+ newmark = (newmark & ~info->ctmark) | -+ (info->ctmask | (dscp << info->shift_bits)); -+ } - if (READ_ONCE(ct->mark) != newmark) { - WRITE_ONCE(ct->mark, newmark); - nf_conntrack_event_cache(IPCT_MARK, ct); -@@ -83,20 +94,36 @@ static unsigned int - connmark_tg(struct sk_buff *skb, const struct xt_action_param *par) - { - const struct xt_connmark_tginfo1 *info = par->targinfo; -- const struct xt_connmark_tginfo2 info2 = { -+ const struct xt_connmark_tginfo3 info3 = { - .ctmark = info->ctmark, - .ctmask = info->ctmask, - .nfmask = info->nfmask, - .mode = info->mode, -+ .func = XT_CONNMARK_VALUE - }; - -- return connmark_tg_shift(skb, &info2); -+ return connmark_tg_shift(skb, &info3); - } - - static unsigned int - connmark_tg_v2(struct sk_buff *skb, const struct xt_action_param *par) - { - const struct xt_connmark_tginfo2 *info = par->targinfo; -+ const struct xt_connmark_tginfo3 info3 = { -+ .ctmark = info->ctmark, -+ .ctmask = info->ctmask, -+ .nfmask = info->nfmask, -+ .mode = info->mode, -+ .func = XT_CONNMARK_VALUE -+ }; -+ -+ return connmark_tg_shift(skb, &info3); -+} -+ -+static unsigned int -+connmark_tg_v3(struct sk_buff *skb, const struct xt_action_param *par) -+{ -+ const struct xt_connmark_tginfo3 *info = par->targinfo; - - return connmark_tg_shift(skb, info); - } -@@ -167,6 +194,16 @@ static struct xt_target connmark_tg_reg[ - .targetsize = sizeof(struct xt_connmark_tginfo2), - .destroy = connmark_tg_destroy, - .me = THIS_MODULE, -+ }, -+ { -+ .name = "CONNMARK", -+ .revision = 3, -+ .family = NFPROTO_UNSPEC, -+ .checkentry = connmark_tg_check, -+ .target = connmark_tg_v3, -+ .targetsize = sizeof(struct xt_connmark_tginfo3), -+ .destroy = connmark_tg_destroy, -+ .me = THIS_MODULE, - } - }; - diff --git a/6.11/target/linux/generic/hack-6.11/650-netfilter-add-xt_FLOWOFFLOAD-target.patch b/6.11/target/linux/generic/hack-6.11/650-netfilter-add-xt_FLOWOFFLOAD-target.patch deleted file mode 100644 index eca611da..00000000 --- a/6.11/target/linux/generic/hack-6.11/650-netfilter-add-xt_FLOWOFFLOAD-target.patch +++ /dev/null @@ -1,812 +0,0 @@ -From: Felix Fietkau -Date: Tue, 20 Feb 2018 15:56:02 +0100 -Subject: [PATCH] netfilter: add xt_FLOWOFFLOAD target - -Signed-off-by: Felix Fietkau ---- - create mode 100644 net/netfilter/xt_OFFLOAD.c - ---- a/net/netfilter/Kconfig -+++ b/net/netfilter/Kconfig -@@ -729,7 +729,6 @@ config NF_FLOW_TABLE - tristate "Netfilter flow table module" - depends on NETFILTER_INGRESS - depends on NF_CONNTRACK -- depends on NF_TABLES - help - This option adds the flow table core infrastructure. - -@@ -1025,6 +1024,15 @@ config NETFILTER_XT_TARGET_NOTRACK - depends on NETFILTER_ADVANCED - select NETFILTER_XT_TARGET_CT - -+config NETFILTER_XT_TARGET_FLOWOFFLOAD -+ tristate '"FLOWOFFLOAD" target support' -+ depends on NF_FLOW_TABLE -+ depends on NETFILTER_INGRESS -+ help -+ This option adds a `FLOWOFFLOAD' target, which uses the nf_flow_offload -+ module to speed up processing of packets by bypassing the usual -+ netfilter chains -+ - config NETFILTER_XT_TARGET_RATEEST - tristate '"RATEEST" target support' - depends on NETFILTER_ADVANCED ---- a/net/netfilter/Makefile -+++ b/net/netfilter/Makefile -@@ -163,6 +163,7 @@ obj-$(CONFIG_NETFILTER_XT_TARGET_CLASSIF - obj-$(CONFIG_NETFILTER_XT_TARGET_CONNSECMARK) += xt_CONNSECMARK.o - obj-$(CONFIG_NETFILTER_XT_TARGET_CT) += xt_CT.o - obj-$(CONFIG_NETFILTER_XT_TARGET_DSCP) += xt_DSCP.o -+obj-$(CONFIG_NETFILTER_XT_TARGET_FLOWOFFLOAD) += xt_FLOWOFFLOAD.o - obj-$(CONFIG_NETFILTER_XT_TARGET_HL) += xt_HL.o - obj-$(CONFIG_NETFILTER_XT_TARGET_HMARK) += xt_HMARK.o - obj-$(CONFIG_NETFILTER_XT_TARGET_LED) += xt_LED.o ---- /dev/null -+++ b/net/netfilter/xt_FLOWOFFLOAD.c -@@ -0,0 +1,703 @@ -+/* -+ * Copyright (C) 2018-2021 Felix Fietkau -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License version 2 as -+ * published by the Free Software Foundation. -+ */ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+struct xt_flowoffload_hook { -+ struct hlist_node list; -+ struct nf_hook_ops ops; -+ struct net *net; -+ bool registered; -+ bool used; -+}; -+ -+struct xt_flowoffload_table { -+ struct nf_flowtable ft; -+ struct hlist_head hooks; -+ struct delayed_work work; -+}; -+ -+struct nf_forward_info { -+ const struct net_device *indev; -+ const struct net_device *outdev; -+ const struct net_device *hw_outdev; -+ struct id { -+ __u16 id; -+ __be16 proto; -+ } encap[NF_FLOW_TABLE_ENCAP_MAX]; -+ u8 num_encaps; -+ u8 ingress_vlans; -+ u8 h_source[ETH_ALEN]; -+ u8 h_dest[ETH_ALEN]; -+ enum flow_offload_xmit_type xmit_type; -+}; -+ -+static DEFINE_SPINLOCK(hooks_lock); -+ -+struct xt_flowoffload_table flowtable[2]; -+ -+static unsigned int -+xt_flowoffload_net_hook(void *priv, struct sk_buff *skb, -+ const struct nf_hook_state *state) -+{ -+ struct vlan_ethhdr *veth; -+ __be16 proto; -+ -+ switch (skb->protocol) { -+ case htons(ETH_P_8021Q): -+ veth = (struct vlan_ethhdr *)skb_mac_header(skb); -+ proto = veth->h_vlan_encapsulated_proto; -+ break; -+ case htons(ETH_P_PPP_SES): -+ if (!nf_flow_pppoe_proto(skb, &proto)) -+ return NF_ACCEPT; -+ break; -+ default: -+ proto = skb->protocol; -+ break; -+ } -+ -+ switch (proto) { -+ case htons(ETH_P_IP): -+ return nf_flow_offload_ip_hook(priv, skb, state); -+ case htons(ETH_P_IPV6): -+ return nf_flow_offload_ipv6_hook(priv, skb, state); -+ } -+ -+ return NF_ACCEPT; -+} -+ -+static int -+xt_flowoffload_create_hook(struct xt_flowoffload_table *table, -+ struct net_device *dev) -+{ -+ struct xt_flowoffload_hook *hook; -+ struct nf_hook_ops *ops; -+ -+ hook = kzalloc(sizeof(*hook), GFP_ATOMIC); -+ if (!hook) -+ return -ENOMEM; -+ -+ ops = &hook->ops; -+ ops->pf = NFPROTO_NETDEV; -+ ops->hooknum = NF_NETDEV_INGRESS; -+ ops->priority = 10; -+ ops->priv = &table->ft; -+ ops->hook = xt_flowoffload_net_hook; -+ ops->dev = dev; -+ -+ hlist_add_head(&hook->list, &table->hooks); -+ mod_delayed_work(system_power_efficient_wq, &table->work, 0); -+ -+ return 0; -+} -+ -+static struct xt_flowoffload_hook * -+flow_offload_lookup_hook(struct xt_flowoffload_table *table, -+ struct net_device *dev) -+{ -+ struct xt_flowoffload_hook *hook; -+ -+ hlist_for_each_entry(hook, &table->hooks, list) { -+ if (hook->ops.dev == dev) -+ return hook; -+ } -+ -+ return NULL; -+} -+ -+static void -+xt_flowoffload_check_device(struct xt_flowoffload_table *table, -+ struct net_device *dev) -+{ -+ struct xt_flowoffload_hook *hook; -+ -+ if (!dev) -+ return; -+ -+ spin_lock_bh(&hooks_lock); -+ hook = flow_offload_lookup_hook(table, dev); -+ if (hook) -+ hook->used = true; -+ else -+ xt_flowoffload_create_hook(table, dev); -+ spin_unlock_bh(&hooks_lock); -+} -+ -+static void -+xt_flowoffload_register_hooks(struct xt_flowoffload_table *table) -+{ -+ struct xt_flowoffload_hook *hook; -+ -+restart: -+ hlist_for_each_entry(hook, &table->hooks, list) { -+ if (hook->registered) -+ continue; -+ -+ hook->registered = true; -+ hook->net = dev_net(hook->ops.dev); -+ spin_unlock_bh(&hooks_lock); -+ nf_register_net_hook(hook->net, &hook->ops); -+ if (table->ft.flags & NF_FLOWTABLE_HW_OFFLOAD) -+ table->ft.type->setup(&table->ft, hook->ops.dev, -+ FLOW_BLOCK_BIND); -+ spin_lock_bh(&hooks_lock); -+ goto restart; -+ } -+ -+} -+ -+static bool -+xt_flowoffload_cleanup_hooks(struct xt_flowoffload_table *table) -+{ -+ struct xt_flowoffload_hook *hook; -+ bool active = false; -+ -+restart: -+ spin_lock_bh(&hooks_lock); -+ hlist_for_each_entry(hook, &table->hooks, list) { -+ if (hook->used || !hook->registered) { -+ active = true; -+ continue; -+ } -+ -+ hlist_del(&hook->list); -+ spin_unlock_bh(&hooks_lock); -+ if (table->ft.flags & NF_FLOWTABLE_HW_OFFLOAD) -+ table->ft.type->setup(&table->ft, hook->ops.dev, -+ FLOW_BLOCK_UNBIND); -+ nf_unregister_net_hook(hook->net, &hook->ops); -+ kfree(hook); -+ goto restart; -+ } -+ spin_unlock_bh(&hooks_lock); -+ -+ return active; -+} -+ -+static void -+xt_flowoffload_check_hook(struct nf_flowtable *flowtable, -+ struct flow_offload *flow, void *data) -+{ -+ struct xt_flowoffload_table *table; -+ struct flow_offload_tuple *tuple0 = &flow->tuplehash[0].tuple; -+ struct flow_offload_tuple *tuple1 = &flow->tuplehash[1].tuple; -+ struct xt_flowoffload_hook *hook; -+ -+ table = container_of(flowtable, struct xt_flowoffload_table, ft); -+ -+ spin_lock_bh(&hooks_lock); -+ hlist_for_each_entry(hook, &table->hooks, list) { -+ if (hook->ops.dev->ifindex != tuple0->iifidx && -+ hook->ops.dev->ifindex != tuple1->iifidx) -+ continue; -+ -+ hook->used = true; -+ } -+ spin_unlock_bh(&hooks_lock); -+} -+ -+static void -+xt_flowoffload_hook_work(struct work_struct *work) -+{ -+ struct xt_flowoffload_table *table; -+ struct xt_flowoffload_hook *hook; -+ int err; -+ -+ table = container_of(work, struct xt_flowoffload_table, work.work); -+ -+ spin_lock_bh(&hooks_lock); -+ xt_flowoffload_register_hooks(table); -+ hlist_for_each_entry(hook, &table->hooks, list) -+ hook->used = false; -+ spin_unlock_bh(&hooks_lock); -+ -+ err = nf_flow_table_iterate(&table->ft, xt_flowoffload_check_hook, -+ NULL); -+ if (err && err != -EAGAIN) -+ goto out; -+ -+ if (!xt_flowoffload_cleanup_hooks(table)) -+ return; -+ -+out: -+ queue_delayed_work(system_power_efficient_wq, &table->work, HZ); -+} -+ -+static bool -+xt_flowoffload_skip(struct sk_buff *skb, int family) -+{ -+ if (skb_sec_path(skb)) -+ return true; -+ -+ if (family == NFPROTO_IPV4) { -+ const struct ip_options *opt = &(IPCB(skb)->opt); -+ -+ if (unlikely(opt->optlen)) -+ return true; -+ } -+ -+ return false; -+} -+ -+static enum flow_offload_xmit_type nf_xmit_type(struct dst_entry *dst) -+{ -+ if (dst_xfrm(dst)) -+ return FLOW_OFFLOAD_XMIT_XFRM; -+ -+ return FLOW_OFFLOAD_XMIT_NEIGH; -+} -+ -+static void nf_default_forward_path(struct nf_flow_route *route, -+ struct dst_entry *dst_cache, -+ enum ip_conntrack_dir dir, -+ struct net_device **dev) -+{ -+ dev[!dir] = dst_cache->dev; -+ route->tuple[!dir].in.ifindex = dst_cache->dev->ifindex; -+ route->tuple[dir].dst = dst_cache; -+ route->tuple[dir].xmit_type = nf_xmit_type(dst_cache); -+} -+ -+static bool nf_is_valid_ether_device(const struct net_device *dev) -+{ -+ if (!dev || (dev->flags & IFF_LOOPBACK) || dev->type != ARPHRD_ETHER || -+ dev->addr_len != ETH_ALEN || !is_valid_ether_addr(dev->dev_addr)) -+ return false; -+ -+ return true; -+} -+ -+static void nf_dev_path_info(const struct net_device_path_stack *stack, -+ struct nf_forward_info *info, -+ unsigned char *ha) -+{ -+ const struct net_device_path *path; -+ int i; -+ -+ memcpy(info->h_dest, ha, ETH_ALEN); -+ -+ for (i = 0; i < stack->num_paths; i++) { -+ path = &stack->path[i]; -+ switch (path->type) { -+ case DEV_PATH_ETHERNET: -+ case DEV_PATH_DSA: -+ case DEV_PATH_VLAN: -+ case DEV_PATH_PPPOE: -+ info->indev = path->dev; -+ if (is_zero_ether_addr(info->h_source)) -+ memcpy(info->h_source, path->dev->dev_addr, ETH_ALEN); -+ -+ if (path->type == DEV_PATH_ETHERNET) -+ break; -+ if (path->type == DEV_PATH_DSA) { -+ i = stack->num_paths; -+ break; -+ } -+ -+ /* DEV_PATH_VLAN and DEV_PATH_PPPOE */ -+ if (info->num_encaps >= NF_FLOW_TABLE_ENCAP_MAX) { -+ info->indev = NULL; -+ break; -+ } -+ if (!info->outdev) -+ info->outdev = path->dev; -+ info->encap[info->num_encaps].id = path->encap.id; -+ info->encap[info->num_encaps].proto = path->encap.proto; -+ info->num_encaps++; -+ if (path->type == DEV_PATH_PPPOE) -+ memcpy(info->h_dest, path->encap.h_dest, ETH_ALEN); -+ break; -+ case DEV_PATH_BRIDGE: -+ if (is_zero_ether_addr(info->h_source)) -+ memcpy(info->h_source, path->dev->dev_addr, ETH_ALEN); -+ -+ switch (path->bridge.vlan_mode) { -+ case DEV_PATH_BR_VLAN_UNTAG_HW: -+ info->ingress_vlans |= BIT(info->num_encaps - 1); -+ break; -+ case DEV_PATH_BR_VLAN_TAG: -+ info->encap[info->num_encaps].id = path->bridge.vlan_id; -+ info->encap[info->num_encaps].proto = path->bridge.vlan_proto; -+ info->num_encaps++; -+ break; -+ case DEV_PATH_BR_VLAN_UNTAG: -+ info->num_encaps--; -+ break; -+ case DEV_PATH_BR_VLAN_KEEP: -+ break; -+ } -+ break; -+ default: -+ info->indev = NULL; -+ break; -+ } -+ } -+ if (!info->outdev) -+ info->outdev = info->indev; -+ -+ info->hw_outdev = info->indev; -+ -+ if (nf_is_valid_ether_device(info->indev)) -+ info->xmit_type = FLOW_OFFLOAD_XMIT_DIRECT; -+} -+ -+static int nf_dev_fill_forward_path(const struct nf_flow_route *route, -+ const struct dst_entry *dst_cache, -+ const struct nf_conn *ct, -+ enum ip_conntrack_dir dir, u8 *ha, -+ struct net_device_path_stack *stack) -+{ -+ const void *daddr = &ct->tuplehash[!dir].tuple.src.u3; -+ struct net_device *dev = dst_cache->dev; -+ struct neighbour *n; -+ u8 nud_state; -+ -+ if (!nf_is_valid_ether_device(dev)) -+ goto out; -+ -+ n = dst_neigh_lookup(dst_cache, daddr); -+ if (!n) -+ return -1; -+ -+ read_lock_bh(&n->lock); -+ nud_state = n->nud_state; -+ ether_addr_copy(ha, n->ha); -+ read_unlock_bh(&n->lock); -+ neigh_release(n); -+ -+ if (!(nud_state & NUD_VALID)) -+ return -1; -+ -+out: -+ return dev_fill_forward_path(dev, ha, stack); -+} -+ -+static void nf_dev_forward_path(struct nf_flow_route *route, -+ const struct nf_conn *ct, -+ enum ip_conntrack_dir dir, -+ struct net_device **devs) -+{ -+ const struct dst_entry *dst = route->tuple[dir].dst; -+ struct net_device_path_stack stack; -+ struct nf_forward_info info = {}; -+ unsigned char ha[ETH_ALEN]; -+ int i; -+ -+ if (nf_dev_fill_forward_path(route, dst, ct, dir, ha, &stack) >= 0) -+ nf_dev_path_info(&stack, &info, ha); -+ -+ devs[!dir] = (struct net_device *)info.indev; -+ if (!info.indev) -+ return; -+ -+ route->tuple[!dir].in.ifindex = info.indev->ifindex; -+ for (i = 0; i < info.num_encaps; i++) { -+ route->tuple[!dir].in.encap[i].id = info.encap[i].id; -+ route->tuple[!dir].in.encap[i].proto = info.encap[i].proto; -+ } -+ route->tuple[!dir].in.num_encaps = info.num_encaps; -+ route->tuple[!dir].in.ingress_vlans = info.ingress_vlans; -+ -+ if (info.xmit_type == FLOW_OFFLOAD_XMIT_DIRECT) { -+ memcpy(route->tuple[dir].out.h_source, info.h_source, ETH_ALEN); -+ memcpy(route->tuple[dir].out.h_dest, info.h_dest, ETH_ALEN); -+ route->tuple[dir].out.ifindex = info.outdev->ifindex; -+ route->tuple[dir].out.hw_ifindex = info.hw_outdev->ifindex; -+ route->tuple[dir].xmit_type = info.xmit_type; -+ } -+} -+ -+static int -+xt_flowoffload_route(struct sk_buff *skb, const struct nf_conn *ct, -+ const struct xt_action_param *par, -+ struct nf_flow_route *route, enum ip_conntrack_dir dir, -+ struct net_device **devs) -+{ -+ struct dst_entry *this_dst = skb_dst(skb); -+ struct dst_entry *other_dst = NULL; -+ struct flowi fl; -+ -+ memset(&fl, 0, sizeof(fl)); -+ switch (xt_family(par)) { -+ case NFPROTO_IPV4: -+ fl.u.ip4.daddr = ct->tuplehash[dir].tuple.src.u3.ip; -+ fl.u.ip4.flowi4_oif = xt_in(par)->ifindex; -+ break; -+ case NFPROTO_IPV6: -+ fl.u.ip6.saddr = ct->tuplehash[!dir].tuple.dst.u3.in6; -+ fl.u.ip6.daddr = ct->tuplehash[dir].tuple.src.u3.in6; -+ fl.u.ip6.flowi6_oif = xt_in(par)->ifindex; -+ break; -+ } -+ -+ if (!dst_hold_safe(this_dst)) -+ return -ENOENT; -+ -+ nf_route(xt_net(par), &other_dst, &fl, false, xt_family(par)); -+ if (!other_dst) { -+ dst_release(this_dst); -+ return -ENOENT; -+ } -+ -+ nf_default_forward_path(route, this_dst, dir, devs); -+ nf_default_forward_path(route, other_dst, !dir, devs); -+ -+ if (route->tuple[dir].xmit_type == FLOW_OFFLOAD_XMIT_NEIGH && -+ route->tuple[!dir].xmit_type == FLOW_OFFLOAD_XMIT_NEIGH) { -+ nf_dev_forward_path(route, ct, dir, devs); -+ nf_dev_forward_path(route, ct, !dir, devs); -+ } -+ -+ return 0; -+} -+ -+static unsigned int -+flowoffload_tg(struct sk_buff *skb, const struct xt_action_param *par) -+{ -+ struct xt_flowoffload_table *table; -+ const struct xt_flowoffload_target_info *info = par->targinfo; -+ struct tcphdr _tcph, *tcph = NULL; -+ enum ip_conntrack_info ctinfo; -+ enum ip_conntrack_dir dir; -+ struct nf_flow_route route = {}; -+ struct flow_offload *flow = NULL; -+ struct net_device *devs[2] = {}; -+ struct nf_conn *ct; -+ struct net *net; -+ -+ if (xt_flowoffload_skip(skb, xt_family(par))) -+ return XT_CONTINUE; -+ -+ ct = nf_ct_get(skb, &ctinfo); -+ if (ct == NULL) -+ return XT_CONTINUE; -+ -+ switch (ct->tuplehash[IP_CT_DIR_ORIGINAL].tuple.dst.protonum) { -+ case IPPROTO_TCP: -+ if (ct->proto.tcp.state != TCP_CONNTRACK_ESTABLISHED) -+ return XT_CONTINUE; -+ -+ tcph = skb_header_pointer(skb, par->thoff, -+ sizeof(_tcph), &_tcph); -+ if (unlikely(!tcph || tcph->fin || tcph->rst)) -+ return XT_CONTINUE; -+ break; -+ case IPPROTO_UDP: -+ break; -+ default: -+ return XT_CONTINUE; -+ } -+ -+ if (nf_ct_ext_exist(ct, NF_CT_EXT_HELPER) || -+ ct->status & (IPS_SEQ_ADJUST | IPS_NAT_CLASH)) -+ return XT_CONTINUE; -+ -+ if (!nf_ct_is_confirmed(ct)) -+ return XT_CONTINUE; -+ -+ dir = CTINFO2DIR(ctinfo); -+ -+ devs[dir] = xt_out(par); -+ devs[!dir] = xt_in(par); -+ -+ if (!devs[dir] || !devs[!dir]) -+ return XT_CONTINUE; -+ -+ if (test_and_set_bit(IPS_OFFLOAD_BIT, &ct->status)) -+ return XT_CONTINUE; -+ -+ if (xt_flowoffload_route(skb, ct, par, &route, dir, devs) < 0) -+ goto err_flow_route; -+ -+ flow = flow_offload_alloc(ct); -+ if (!flow) -+ goto err_flow_alloc; -+ -+ flow_offload_route_init(flow, &route); -+ -+ if (tcph) { -+ ct->proto.tcp.seen[0].flags |= IP_CT_TCP_FLAG_BE_LIBERAL; -+ ct->proto.tcp.seen[1].flags |= IP_CT_TCP_FLAG_BE_LIBERAL; -+ } -+ -+ table = &flowtable[!!(info->flags & XT_FLOWOFFLOAD_HW)]; -+ -+ net = read_pnet(&table->ft.net); -+ if (!net) -+ write_pnet(&table->ft.net, xt_net(par)); -+ -+ __set_bit(NF_FLOW_HW_BIDIRECTIONAL, &flow->flags); -+ if (flow_offload_add(&table->ft, flow) < 0) -+ goto err_flow_add; -+ -+ xt_flowoffload_check_device(table, devs[0]); -+ xt_flowoffload_check_device(table, devs[1]); -+ -+ return XT_CONTINUE; -+ -+err_flow_add: -+ flow_offload_free(flow); -+err_flow_alloc: -+ dst_release(route.tuple[dir].dst); -+ dst_release(route.tuple[!dir].dst); -+err_flow_route: -+ clear_bit(IPS_OFFLOAD_BIT, &ct->status); -+ -+ return XT_CONTINUE; -+} -+ -+static int flowoffload_chk(const struct xt_tgchk_param *par) -+{ -+ struct xt_flowoffload_target_info *info = par->targinfo; -+ -+ if (info->flags & ~XT_FLOWOFFLOAD_MASK) -+ return -EINVAL; -+ -+ return 0; -+} -+ -+static struct xt_target offload_tg_reg __read_mostly = { -+ .family = NFPROTO_UNSPEC, -+ .name = "FLOWOFFLOAD", -+ .revision = 0, -+ .targetsize = sizeof(struct xt_flowoffload_target_info), -+ .usersize = sizeof(struct xt_flowoffload_target_info), -+ .checkentry = flowoffload_chk, -+ .target = flowoffload_tg, -+ .me = THIS_MODULE, -+}; -+ -+static int flow_offload_netdev_event(struct notifier_block *this, -+ unsigned long event, void *ptr) -+{ -+ struct xt_flowoffload_hook *hook0, *hook1; -+ struct net_device *dev = netdev_notifier_info_to_dev(ptr); -+ -+ if (event != NETDEV_UNREGISTER) -+ return NOTIFY_DONE; -+ -+ spin_lock_bh(&hooks_lock); -+ hook0 = flow_offload_lookup_hook(&flowtable[0], dev); -+ if (hook0) -+ hlist_del(&hook0->list); -+ -+ hook1 = flow_offload_lookup_hook(&flowtable[1], dev); -+ if (hook1) -+ hlist_del(&hook1->list); -+ spin_unlock_bh(&hooks_lock); -+ -+ if (hook0) { -+ nf_unregister_net_hook(hook0->net, &hook0->ops); -+ kfree(hook0); -+ } -+ -+ if (hook1) { -+ nf_unregister_net_hook(hook1->net, &hook1->ops); -+ kfree(hook1); -+ } -+ -+ nf_flow_table_cleanup(dev); -+ -+ return NOTIFY_DONE; -+} -+ -+static struct notifier_block flow_offload_netdev_notifier = { -+ .notifier_call = flow_offload_netdev_event, -+}; -+ -+static int nf_flow_rule_route_inet(struct net *net, -+ struct flow_offload *flow, -+ enum flow_offload_tuple_dir dir, -+ struct nf_flow_rule *flow_rule) -+{ -+ const struct flow_offload_tuple *flow_tuple = &flow->tuplehash[dir].tuple; -+ int err; -+ -+ switch (flow_tuple->l3proto) { -+ case NFPROTO_IPV4: -+ err = nf_flow_rule_route_ipv4(net, flow, dir, flow_rule); -+ break; -+ case NFPROTO_IPV6: -+ err = nf_flow_rule_route_ipv6(net, flow, dir, flow_rule); -+ break; -+ default: -+ err = -1; -+ break; -+ } -+ -+ return err; -+} -+ -+static struct nf_flowtable_type flowtable_inet = { -+ .family = NFPROTO_INET, -+ .init = nf_flow_table_init, -+ .setup = nf_flow_table_offload_setup, -+ .action = nf_flow_rule_route_inet, -+ .free = nf_flow_table_free, -+ .hook = xt_flowoffload_net_hook, -+ .owner = THIS_MODULE, -+}; -+ -+static int init_flowtable(struct xt_flowoffload_table *tbl) -+{ -+ INIT_DELAYED_WORK(&tbl->work, xt_flowoffload_hook_work); -+ tbl->ft.type = &flowtable_inet; -+ tbl->ft.flags = NF_FLOWTABLE_COUNTER; -+ -+ return nf_flow_table_init(&tbl->ft); -+} -+ -+static int __init xt_flowoffload_tg_init(void) -+{ -+ int ret; -+ -+ register_netdevice_notifier(&flow_offload_netdev_notifier); -+ -+ ret = init_flowtable(&flowtable[0]); -+ if (ret) -+ return ret; -+ -+ ret = init_flowtable(&flowtable[1]); -+ if (ret) -+ goto cleanup; -+ -+ flowtable[1].ft.flags |= NF_FLOWTABLE_HW_OFFLOAD; -+ -+ ret = xt_register_target(&offload_tg_reg); -+ if (ret) -+ goto cleanup2; -+ -+ return 0; -+ -+cleanup2: -+ nf_flow_table_free(&flowtable[1].ft); -+cleanup: -+ nf_flow_table_free(&flowtable[0].ft); -+ return ret; -+} -+ -+static void __exit xt_flowoffload_tg_exit(void) -+{ -+ xt_unregister_target(&offload_tg_reg); -+ unregister_netdevice_notifier(&flow_offload_netdev_notifier); -+ nf_flow_table_free(&flowtable[0].ft); -+ nf_flow_table_free(&flowtable[1].ft); -+} -+ -+MODULE_LICENSE("GPL"); -+module_init(xt_flowoffload_tg_init); -+module_exit(xt_flowoffload_tg_exit); ---- a/net/netfilter/nf_flow_table_core.c -+++ b/net/netfilter/nf_flow_table_core.c -@@ -7,7 +7,6 @@ - #include - #include - #include --#include - #include - #include - #include -@@ -377,8 +376,7 @@ flow_offload_lookup(struct nf_flowtable - } - EXPORT_SYMBOL_GPL(flow_offload_lookup); - --static int --nf_flow_table_iterate(struct nf_flowtable *flow_table, -+int nf_flow_table_iterate(struct nf_flowtable *flow_table, - void (*iter)(struct nf_flowtable *flowtable, - struct flow_offload *flow, void *data), - void *data) -@@ -439,6 +437,7 @@ static void nf_flow_offload_gc_step(stru - nf_flow_offload_stats(flow_table, flow); - } - } -+EXPORT_SYMBOL_GPL(nf_flow_table_iterate); - - void nf_flow_table_gc_run(struct nf_flowtable *flow_table) - { ---- /dev/null -+++ b/include/uapi/linux/netfilter/xt_FLOWOFFLOAD.h -@@ -0,0 +1,17 @@ -+/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -+#ifndef _XT_FLOWOFFLOAD_H -+#define _XT_FLOWOFFLOAD_H -+ -+#include -+ -+enum { -+ XT_FLOWOFFLOAD_HW = 1 << 0, -+ -+ XT_FLOWOFFLOAD_MASK = XT_FLOWOFFLOAD_HW -+}; -+ -+struct xt_flowoffload_target_info { -+ __u32 flags; -+}; -+ -+#endif /* _XT_FLOWOFFLOAD_H */ ---- a/include/net/netfilter/nf_flow_table.h -+++ b/include/net/netfilter/nf_flow_table.h -@@ -293,6 +293,11 @@ void nf_flow_table_free(struct nf_flowta - - void flow_offload_teardown(struct flow_offload *flow); - -+int nf_flow_table_iterate(struct nf_flowtable *flow_table, -+ void (*iter)(struct nf_flowtable *flowtable, -+ struct flow_offload *flow, void *data), -+ void *data); -+ - void nf_flow_snat_port(const struct flow_offload *flow, - struct sk_buff *skb, unsigned int thoff, - u8 protocol, enum flow_offload_tuple_dir dir); diff --git a/6.11/target/linux/generic/hack-6.11/651-wireless_mesh_header.patch b/6.11/target/linux/generic/hack-6.11/651-wireless_mesh_header.patch deleted file mode 100644 index 3a2a9970..00000000 --- a/6.11/target/linux/generic/hack-6.11/651-wireless_mesh_header.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 6d3bc769657b0ee7c7506dad9911111c4226a7ea Mon Sep 17 00:00:00 2001 -From: Imre Kaloz -Date: Fri, 7 Jul 2017 17:21:05 +0200 -Subject: mac80211: increase wireless mesh header size - -lede-commit 3d4466cfd8f75f717efdb1f96fdde3c70d865fc1 -Signed-off-by: Imre Kaloz ---- - include/linux/netdevice.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/include/linux/netdevice.h -+++ b/include/linux/netdevice.h -@@ -157,8 +157,8 @@ static inline bool dev_xmit_complete(int - - #if defined(CONFIG_HYPERV_NET) - # define LL_MAX_HEADER 128 --#elif defined(CONFIG_WLAN) || IS_ENABLED(CONFIG_AX25) --# if defined(CONFIG_MAC80211_MESH) -+#elif defined(CONFIG_WLAN) || IS_ENABLED(CONFIG_AX25) || 1 -+# if defined(CONFIG_MAC80211_MESH) || 1 - # define LL_MAX_HEADER 128 - # else - # define LL_MAX_HEADER 96 diff --git a/6.11/target/linux/generic/hack-6.11/660-fq_codel_defaults.patch b/6.11/target/linux/generic/hack-6.11/660-fq_codel_defaults.patch deleted file mode 100644 index b923a2d2..00000000 --- a/6.11/target/linux/generic/hack-6.11/660-fq_codel_defaults.patch +++ /dev/null @@ -1,27 +0,0 @@ -From a6ccb238939b25851474a279b20367fd24a0e816 Mon Sep 17 00:00:00 2001 -From: Felix Fietkau -Date: Fri, 7 Jul 2017 17:21:53 +0200 -Subject: hack: net: fq_codel: tune defaults for small devices - -Assume that x86_64 devices always have a big memory and do not need this -optimization compared to devices with only 32 MB or 64 MB RAM. - -Signed-off-by: Felix Fietkau ---- - net/sched/sch_fq_codel.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/net/sched/sch_fq_codel.c -+++ b/net/sched/sch_fq_codel.c -@@ -471,7 +471,11 @@ static int fq_codel_init(struct Qdisc *s - - sch->limit = 10*1024; - q->flows_cnt = 1024; -+#ifdef CONFIG_X86_64 - q->memory_limit = 32 << 20; /* 32 MBytes */ -+#else -+ q->memory_limit = 4 << 20; /* 4 MBytes */ -+#endif - q->drop_batch_size = 64; - q->quantum = psched_mtu(qdisc_dev(sch)); - INIT_LIST_HEAD(&q->new_flows); diff --git a/6.11/target/linux/generic/hack-6.11/661-kernel-ct-size-the-hashtable-more-adequately.patch b/6.11/target/linux/generic/hack-6.11/661-kernel-ct-size-the-hashtable-more-adequately.patch deleted file mode 100644 index 020f3f3a..00000000 --- a/6.11/target/linux/generic/hack-6.11/661-kernel-ct-size-the-hashtable-more-adequately.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 804fbb3f2ec9283f7b778e057a68bfff440a0be6 Mon Sep 17 00:00:00 2001 -From: Rui Salvaterra -Date: Wed, 30 Mar 2022 22:51:55 +0100 -Subject: [PATCH] kernel: ct: size the hashtable more adequately - -To set the default size of the connection tracking hash table, a divider of -16384 becomes inadequate for a router handling lots of connections. Divide by -2048 instead, making the default size scale better with the available RAM. - -Signed-off-by: Rui Salvaterra ---- - net/netfilter/nf_conntrack_core.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/net/netfilter/nf_conntrack_core.c -+++ b/net/netfilter/nf_conntrack_core.c -@@ -2682,7 +2682,7 @@ int nf_conntrack_init_start(void) - - if (!nf_conntrack_htable_size) { - nf_conntrack_htable_size -- = (((nr_pages << PAGE_SHIFT) / 16384) -+ = (((nr_pages << PAGE_SHIFT) / 2048) - / sizeof(struct hlist_head)); - if (BITS_PER_LONG >= 64 && - nr_pages > (4 * (1024 * 1024 * 1024 / PAGE_SIZE))) diff --git a/6.11/target/linux/generic/hack-6.11/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch b/6.11/target/linux/generic/hack-6.11/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch deleted file mode 100644 index dbf1da04..00000000 --- a/6.11/target/linux/generic/hack-6.11/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch +++ /dev/null @@ -1,21 +0,0 @@ -From ebd924d773223593142d417c41d4ee6fa16f1805 Mon Sep 17 00:00:00 2001 -From: OpenWrt community -Date: Wed, 13 Jul 2022 13:45:56 +0200 -Subject: [PATCH] net/dsa/mv88e6xxx: disable ATU violation - ---- - drivers/net/dsa/mv88e6xxx/chip.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- a/drivers/net/dsa/mv88e6xxx/chip.c -+++ b/drivers/net/dsa/mv88e6xxx/chip.c -@@ -3375,6 +3375,9 @@ static int mv88e6xxx_setup_port(struct m - else - reg = 1 << port; - -+ /* Disable ATU member violation interrupt */ -+ reg |= MV88E6XXX_PORT_ASSOC_VECTOR_IGNORE_WRONG; -+ - err = mv88e6xxx_port_write(chip, port, MV88E6XXX_PORT_ASSOC_VECTOR, - reg); - if (err) diff --git a/6.11/target/linux/generic/hack-6.11/722-net-phy-aquantia-enable-AQR112-and-AQR412.patch b/6.11/target/linux/generic/hack-6.11/722-net-phy-aquantia-enable-AQR112-and-AQR412.patch deleted file mode 100644 index b3fb3c50..00000000 --- a/6.11/target/linux/generic/hack-6.11/722-net-phy-aquantia-enable-AQR112-and-AQR412.patch +++ /dev/null @@ -1,117 +0,0 @@ -From 5f62951fba63a9f9cfff564209426bdea5fcc371 Mon Sep 17 00:00:00 2001 -From: Alex Marginean -Date: Tue, 27 Aug 2019 15:16:56 +0300 -Subject: [PATCH] drivers: net: phy: aquantia: enable AQR112 and AQR412 - -Adds support for AQR112 and AQR412 which is mostly based on existing code -with the addition of code configuring the protocol on system side. -This allows changing the system side protocol without having to deploy a -different firmware on the PHY. - -Signed-off-by: Alex Marginean ---- - drivers/net/phy/aquantia/aquantia_main.c | 88 +++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 88 insertions(+) - ---- a/drivers/net/phy/aquantia/aquantia_main.c -+++ b/drivers/net/phy/aquantia/aquantia_main.c -@@ -127,6 +127,29 @@ struct aqr107_priv { - u64 sgmii_stats[AQR107_SGMII_STAT_SZ]; - }; - -+/* registers in MDIO_MMD_VEND1 region */ -+#define AQUANTIA_VND1_GLOBAL_SC 0x000 -+#define AQUANTIA_VND1_GLOBAL_SC_LP BIT(0xb) -+ -+/* global start rate, the protocol associated with this speed is used by default -+ * on SI. -+ */ -+#define AQUANTIA_VND1_GSTART_RATE 0x31a -+#define AQUANTIA_VND1_GSTART_RATE_OFF 0 -+#define AQUANTIA_VND1_GSTART_RATE_100M 1 -+#define AQUANTIA_VND1_GSTART_RATE_1G 2 -+#define AQUANTIA_VND1_GSTART_RATE_10G 3 -+#define AQUANTIA_VND1_GSTART_RATE_2_5G 4 -+#define AQUANTIA_VND1_GSTART_RATE_5G 5 -+ -+/* SYSCFG registers for 100M, 1G, 2.5G, 5G, 10G */ -+#define AQUANTIA_VND1_GSYSCFG_BASE 0x31b -+#define AQUANTIA_VND1_GSYSCFG_100M 0 -+#define AQUANTIA_VND1_GSYSCFG_1G 1 -+#define AQUANTIA_VND1_GSYSCFG_2_5G 2 -+#define AQUANTIA_VND1_GSYSCFG_5G 3 -+#define AQUANTIA_VND1_GSYSCFG_10G 4 -+ - static int aqr107_get_sset_count(struct phy_device *phydev) - { - return AQR107_SGMII_STAT_SZ; -@@ -233,6 +256,51 @@ static int aqr_config_aneg(struct phy_de - return genphy_c45_check_and_restart_aneg(phydev, changed); - } - -+static struct { -+ u16 syscfg; -+ int cnt; -+ u16 start_rate; -+} aquantia_syscfg[PHY_INTERFACE_MODE_MAX] = { -+ [PHY_INTERFACE_MODE_SGMII] = {0x04b, AQUANTIA_VND1_GSYSCFG_1G, -+ AQUANTIA_VND1_GSTART_RATE_1G}, -+ [PHY_INTERFACE_MODE_2500BASEX] = {0x144, AQUANTIA_VND1_GSYSCFG_2_5G, -+ AQUANTIA_VND1_GSTART_RATE_2_5G}, -+ [PHY_INTERFACE_MODE_XGMII] = {0x100, AQUANTIA_VND1_GSYSCFG_10G, -+ AQUANTIA_VND1_GSTART_RATE_10G}, -+ [PHY_INTERFACE_MODE_USXGMII] = {0x080, AQUANTIA_VND1_GSYSCFG_10G, -+ AQUANTIA_VND1_GSTART_RATE_10G}, -+}; -+ -+/* Sets up protocol on system side before calling aqr_config_aneg */ -+static int aqr_config_aneg_set_prot(struct phy_device *phydev) -+{ -+ int if_type = phydev->interface; -+ int i; -+ -+ if (!aquantia_syscfg[if_type].cnt) -+ return 0; -+ -+ /* set PHY in low power mode so we can configure protocols */ -+ phy_write_mmd(phydev, MDIO_MMD_VEND1, AQUANTIA_VND1_GLOBAL_SC, -+ AQUANTIA_VND1_GLOBAL_SC_LP); -+ mdelay(10); -+ -+ /* set the default rate to enable the SI link */ -+ phy_write_mmd(phydev, MDIO_MMD_VEND1, AQUANTIA_VND1_GSTART_RATE, -+ aquantia_syscfg[if_type].start_rate); -+ -+ for (i = 0; i <= aquantia_syscfg[if_type].cnt; i++) -+ phy_write_mmd(phydev, MDIO_MMD_VEND1, -+ AQUANTIA_VND1_GSYSCFG_BASE + i, -+ aquantia_syscfg[if_type].syscfg); -+ -+ /* wake PHY back up */ -+ phy_write_mmd(phydev, MDIO_MMD_VEND1, AQUANTIA_VND1_GLOBAL_SC, 0); -+ mdelay(10); -+ -+ return aqr_config_aneg(phydev); -+} -+ - static int aqr_config_intr(struct phy_device *phydev) - { - bool en = phydev->interrupts == PHY_INTERRUPT_ENABLED; -@@ -838,7 +906,7 @@ static struct phy_driver aqr_driver[] = - PHY_ID_MATCH_MODEL(PHY_ID_AQR112), - .name = "Aquantia AQR112", - .probe = aqr107_probe, -- .config_aneg = aqr_config_aneg, -+ .config_aneg = aqr_config_aneg_set_prot, - .config_intr = aqr_config_intr, - .handle_interrupt = aqr_handle_interrupt, - .get_tunable = aqr107_get_tunable, -@@ -863,7 +931,7 @@ static struct phy_driver aqr_driver[] = - PHY_ID_MATCH_MODEL(PHY_ID_AQR412), - .name = "Aquantia AQR412", - .probe = aqr107_probe, -- .config_aneg = aqr_config_aneg, -+ .config_aneg = aqr_config_aneg_set_prot, - .config_intr = aqr_config_intr, - .handle_interrupt = aqr_handle_interrupt, - .get_tunable = aqr107_get_tunable, diff --git a/6.11/target/linux/generic/hack-6.11/723-net-phy-aquantia-fix-system-side-protocol-mi.patch b/6.11/target/linux/generic/hack-6.11/723-net-phy-aquantia-fix-system-side-protocol-mi.patch deleted file mode 100644 index 614003a5..00000000 --- a/6.11/target/linux/generic/hack-6.11/723-net-phy-aquantia-fix-system-side-protocol-mi.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 5f008cb22f60da4e10375f22266c1a4e20b1252e Mon Sep 17 00:00:00 2001 -From: Alex Marginean -Date: Fri, 20 Sep 2019 18:22:52 +0300 -Subject: [PATCH] drivers: net: phy: aquantia: fix system side protocol - misconfiguration - -Do not set up protocols for speeds that are not supported by FW. Enabling -these protocols leads to link issues on system side. - -Signed-off-by: Alex Marginean ---- - drivers/net/phy/aquantia/aquantia_main.c | 8 +++++++- - 1 file changed, 7 insertions(+), 1 deletion(-) - ---- a/drivers/net/phy/aquantia/aquantia_main.c -+++ b/drivers/net/phy/aquantia/aquantia_main.c -@@ -289,10 +289,16 @@ static int aqr_config_aneg_set_prot(stru - phy_write_mmd(phydev, MDIO_MMD_VEND1, AQUANTIA_VND1_GSTART_RATE, - aquantia_syscfg[if_type].start_rate); - -- for (i = 0; i <= aquantia_syscfg[if_type].cnt; i++) -+ for (i = 0; i <= aquantia_syscfg[if_type].cnt; i++) { -+ u16 reg = phy_read_mmd(phydev, MDIO_MMD_VEND1, -+ AQUANTIA_VND1_GSYSCFG_BASE + i); -+ if (!reg) -+ continue; -+ - phy_write_mmd(phydev, MDIO_MMD_VEND1, - AQUANTIA_VND1_GSYSCFG_BASE + i, - aquantia_syscfg[if_type].syscfg); -+ } - - /* wake PHY back up */ - phy_write_mmd(phydev, MDIO_MMD_VEND1, AQUANTIA_VND1_GLOBAL_SC, 0); diff --git a/6.11/target/linux/generic/hack-6.11/725-net-phy-aquantia-add-PHY_IDs-for-AQR112-variants.patch b/6.11/target/linux/generic/hack-6.11/725-net-phy-aquantia-add-PHY_IDs-for-AQR112-variants.patch deleted file mode 100644 index c93a77d6..00000000 --- a/6.11/target/linux/generic/hack-6.11/725-net-phy-aquantia-add-PHY_IDs-for-AQR112-variants.patch +++ /dev/null @@ -1,63 +0,0 @@ -From 3b92ee7b7899b6beffb2b484c58326e36612a873 Mon Sep 17 00:00:00 2001 -From: Daniel Golle -Date: Thu, 23 Dec 2021 14:52:56 +0000 -Subject: [PATCH] net: phy: aquantia: add PHY_ID for AQR112R - -As advised by Ian Chang this PHY is used in Puzzle devices. - -Signed-off-by: Daniel Golle ---- - drivers/net/phy/aquantia/aquantia_main.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - ---- a/drivers/net/phy/aquantia/aquantia_main.c -+++ b/drivers/net/phy/aquantia/aquantia_main.c -@@ -30,6 +30,8 @@ - #define PHY_ID_AQR113C 0x31c31c12 - #define PHY_ID_AQR114C 0x31c31c22 - #define PHY_ID_AQR813 0x31c31cb2 -+#define PHY_ID_AQR112C 0x03a1b790 -+#define PHY_ID_AQR112R 0x31c31d12 - - #define MDIO_PHYXS_VEND_IF_STATUS 0xe812 - #define MDIO_PHYXS_VEND_IF_STATUS_TYPE_MASK GENMASK(7, 3) -@@ -1062,6 +1064,30 @@ static struct phy_driver aqr_driver[] = - .led_polarity_set = aqr_phy_led_polarity_set, - #endif - }, -+{ -+ PHY_ID_MATCH_MODEL(PHY_ID_AQR112C), -+ .name = "Aquantia AQR112C", -+ .probe = aqr107_probe, -+ .config_aneg = aqr_config_aneg_set_prot, -+ .config_intr = aqr_config_intr, -+ .handle_interrupt = aqr_handle_interrupt, -+ .read_status = aqr107_read_status, -+ .get_sset_count = aqr107_get_sset_count, -+ .get_strings = aqr107_get_strings, -+ .get_stats = aqr107_get_stats, -+}, -+{ -+ PHY_ID_MATCH_MODEL(PHY_ID_AQR112R), -+ .name = "Aquantia AQR112R", -+ .probe = aqr107_probe, -+ .config_aneg = aqr_config_aneg_set_prot, -+ .config_intr = aqr_config_intr, -+ .handle_interrupt = aqr_handle_interrupt, -+ .read_status = aqr107_read_status, -+ .get_sset_count = aqr107_get_sset_count, -+ .get_strings = aqr107_get_strings, -+ .get_stats = aqr107_get_stats, -+}, - }; - - module_phy_driver(aqr_driver); -@@ -1082,6 +1108,8 @@ static struct mdio_device_id __maybe_unu - { PHY_ID_MATCH_MODEL(PHY_ID_AQR113C) }, - { PHY_ID_MATCH_MODEL(PHY_ID_AQR114C) }, - { PHY_ID_MATCH_MODEL(PHY_ID_AQR813) }, -+ { PHY_ID_MATCH_MODEL(PHY_ID_AQR112C) }, -+ { PHY_ID_MATCH_MODEL(PHY_ID_AQR112R) }, - { } - }; - diff --git a/6.11/target/linux/generic/hack-6.11/760-net-usb-r8152-add-LED-configuration-from-OF.patch b/6.11/target/linux/generic/hack-6.11/760-net-usb-r8152-add-LED-configuration-from-OF.patch deleted file mode 100644 index 190dd350..00000000 --- a/6.11/target/linux/generic/hack-6.11/760-net-usb-r8152-add-LED-configuration-from-OF.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 82985725e071f2a5735052f18e109a32aeac3a0b Mon Sep 17 00:00:00 2001 -From: David Bauer -Date: Sun, 26 Jul 2020 02:38:31 +0200 -Subject: [PATCH] net: usb: r8152: add LED configuration from OF - -This adds the ability to configure the LED configuration register using -OF. This way, the correct value for board specific LED configuration can -be determined. - -Signed-off-by: David Bauer ---- - drivers/net/usb/r8152.c | 23 +++++++++++++++++++++++ - 1 file changed, 23 insertions(+) - ---- a/drivers/net/usb/r8152.c -+++ b/drivers/net/usb/r8152.c -@@ -11,6 +11,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -7035,6 +7036,22 @@ static void rtl_tally_reset(struct r8152 - ocp_write_word(tp, MCU_TYPE_PLA, PLA_RSTTALLY, ocp_data); - } - -+static int r8152_led_configuration(struct r8152 *tp) -+{ -+ u32 led_data; -+ int ret; -+ -+ ret = of_property_read_u32(tp->udev->dev.of_node, "realtek,led-data", -+ &led_data); -+ -+ if (ret) -+ return ret; -+ -+ ocp_write_word(tp, MCU_TYPE_PLA, PLA_LEDSEL, led_data); -+ -+ return 0; -+} -+ - static void r8152b_init(struct r8152 *tp) - { - u32 ocp_data; -@@ -7076,6 +7093,8 @@ static void r8152b_init(struct r8152 *tp - ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL); - ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN); - ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data); -+ -+ r8152_led_configuration(tp); - } - - static void r8153_init(struct r8152 *tp) -@@ -7216,6 +7235,8 @@ static void r8153_init(struct r8152 *tp) - tp->coalesce = COALESCE_SLOW; - break; - } -+ -+ r8152_led_configuration(tp); - } - - static void r8153b_init(struct r8152 *tp) -@@ -7298,6 +7319,8 @@ static void r8153b_init(struct r8152 *tp - rtl_tally_reset(tp); - - tp->coalesce = 15000; /* 15 us */ -+ -+ r8152_led_configuration(tp); - } - - static void r8153c_init(struct r8152 *tp) diff --git a/6.11/target/linux/generic/hack-6.11/761-dt-bindings-net-add-RTL8152-binding-documentation.patch b/6.11/target/linux/generic/hack-6.11/761-dt-bindings-net-add-RTL8152-binding-documentation.patch deleted file mode 100644 index be262b99..00000000 --- a/6.11/target/linux/generic/hack-6.11/761-dt-bindings-net-add-RTL8152-binding-documentation.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 3ee05f4aa64fc86af3be5bc176ba5808de9260a7 Mon Sep 17 00:00:00 2001 -From: David Bauer -Date: Sun, 26 Jul 2020 15:30:33 +0200 -Subject: [PATCH] dt-bindings: net: add RTL8152 binding documentation - -Add binding documentation for the Realtek RTL8152 / RTL8153 USB ethernet -adapters. - -Signed-off-by: David Bauer ---- - .../bindings/net/realtek,rtl8152.yaml | 36 +++++++++++++++++++ - 1 file changed, 36 insertions(+) - create mode 100644 Documentation/devicetree/bindings/net/realtek,rtl8152.yaml - ---- /dev/null -+++ b/Documentation/devicetree/bindings/net/realtek,rtl8152.yaml -@@ -0,0 +1,36 @@ -+# SPDX-License-Identifier: GPL-2.0 -+%YAML 1.2 -+--- -+$id: http://devicetree.org/schemas/net/realtek,rtl8152.yaml# -+$schema: http://devicetree.org/meta-schemas/core.yaml# -+ -+title: Realtek RTL8152/RTL8153 series USB ethernet -+ -+maintainers: -+ - David Bauer -+ -+properties: -+ compatible: -+ oneOf: -+ - items: -+ - enum: -+ - realtek,rtl8152 -+ - realtek,rtl8153 -+ -+ reg: -+ description: The device number on the USB bus -+ -+ realtek,led-data: -+ description: Value to be written to the LED configuration register. -+ -+required: -+ - compatible -+ - reg -+ -+examples: -+ - | -+ usb-eth@2 { -+ compatible = "realtek,rtl8153"; -+ reg = <2>; -+ realtek,led-data = <0x87>; -+ }; -\ No newline at end of file diff --git a/6.11/target/linux/generic/hack-6.11/766-net-phy-mediatek-ge-add-LED-configuration-interface.patch b/6.11/target/linux/generic/hack-6.11/766-net-phy-mediatek-ge-add-LED-configuration-interface.patch deleted file mode 100644 index 3405d5c5..00000000 --- a/6.11/target/linux/generic/hack-6.11/766-net-phy-mediatek-ge-add-LED-configuration-interface.patch +++ /dev/null @@ -1,72 +0,0 @@ -From cc225d163b5a4f7a0d1968298bf7927306646a47 Mon Sep 17 00:00:00 2001 -From: David Bauer -Date: Fri, 28 Apr 2023 01:53:01 +0200 -Subject: [PATCH] net: phy: mediatek-ge: add LED configuration interface - -This adds a small hack similar to the one used for ar8xxx switches to -read a reg:value map for configuring the LED configuration registers. - -This allows OpenWrt to write device-specific LED action as well as blink -configurations. It is unlikely to be accepted upstream, as upstream -plans on integrating their own framework for handling these LEDs. - -Signed-off-by: David Bauer ---- - drivers/net/phy/mediatek-ge.c | 33 +++++++++++++++++++++++++++++++++ - 1 file changed, 33 insertions(+) - ---- a/drivers/net/phy/mediatek-ge.c -+++ b/drivers/net/phy/mediatek-ge.c -@@ -1,4 +1,5 @@ - // SPDX-License-Identifier: GPL-2.0+ -+#include - #include - #include - #include -@@ -53,6 +54,36 @@ static int mt7530_phy_config_init(struct - return 0; - } - -+static int mt7530_led_config_of(struct phy_device *phydev) -+{ -+ struct device_node *np = phydev->mdio.dev.of_node; -+ const __be32 *paddr; -+ int len; -+ int i; -+ -+ paddr = of_get_property(np, "mediatek,led-config", &len); -+ if (!paddr) -+ return 0; -+ -+ if (len < (2 * sizeof(*paddr))) -+ return -EINVAL; -+ -+ len /= sizeof(*paddr); -+ -+ phydev_warn(phydev, "Configure LED registers (num=%d)\n", len); -+ for (i = 0; i < len - 1; i += 2) { -+ u32 reg; -+ u32 val; -+ -+ reg = be32_to_cpup(paddr + i); -+ val = be32_to_cpup(paddr + i + 1); -+ -+ phy_write_mmd(phydev, MDIO_MMD_VEND2, reg, val); -+ } -+ -+ return 0; -+} -+ - static int mt7531_phy_config_init(struct phy_device *phydev) - { - mtk_gephy_config_init(phydev); -@@ -65,6 +96,9 @@ static int mt7531_phy_config_init(struct - phy_write_mmd(phydev, MDIO_MMD_VEND1, 0x13, 0x404); - phy_write_mmd(phydev, MDIO_MMD_VEND1, 0x14, 0x404); - -+ /* LED Config*/ -+ mt7530_led_config_of(phydev); -+ - return 0; - } - diff --git a/6.11/target/linux/generic/hack-6.11/773-bgmac-add-srab-switch.patch b/6.11/target/linux/generic/hack-6.11/773-bgmac-add-srab-switch.patch deleted file mode 100644 index 633cacd1..00000000 --- a/6.11/target/linux/generic/hack-6.11/773-bgmac-add-srab-switch.patch +++ /dev/null @@ -1,98 +0,0 @@ -From 3cb240533ab787899dc7f17aa7d6c5b4810e2e58 Mon Sep 17 00:00:00 2001 -From: Hauke Mehrtens -Date: Fri, 7 Jul 2017 17:26:01 +0200 -Subject: bcm53xx: bgmac: use srab switch driver - -use the srab switch driver on these SoCs. - -Signed-off-by: Hauke Mehrtens ---- - drivers/net/ethernet/broadcom/bgmac-bcma.c | 1 + - drivers/net/ethernet/broadcom/bgmac.c | 24 ++++++++++++++++++++++++ - drivers/net/ethernet/broadcom/bgmac.h | 4 ++++ - 3 files changed, 29 insertions(+) - ---- a/drivers/net/ethernet/broadcom/bgmac-bcma.c -+++ b/drivers/net/ethernet/broadcom/bgmac-bcma.c -@@ -280,6 +280,7 @@ static int bgmac_probe(struct bcma_devic - bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST; - bgmac->feature_flags |= BGMAC_FEAT_NO_RESET; - bgmac->feature_flags |= BGMAC_FEAT_FORCE_SPEED_2500; -+ bgmac->feature_flags |= BGMAC_FEAT_SRAB; - break; - default: - bgmac->feature_flags |= BGMAC_FEAT_CLKCTLST; ---- a/drivers/net/ethernet/broadcom/bgmac.c -+++ b/drivers/net/ethernet/broadcom/bgmac.c -@@ -12,6 +12,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -1408,6 +1409,17 @@ static const struct ethtool_ops bgmac_et - .set_link_ksettings = phy_ethtool_set_link_ksettings, - }; - -+static struct b53_platform_data bgmac_b53_pdata = { -+}; -+ -+static struct platform_device bgmac_b53_dev = { -+ .name = "b53-srab-switch", -+ .id = -1, -+ .dev = { -+ .platform_data = &bgmac_b53_pdata, -+ }, -+}; -+ - /************************************************** - * MII - **************************************************/ -@@ -1546,6 +1558,14 @@ int bgmac_enet_probe(struct bgmac *bgmac - - bgmac->in_init = false; - -+ if ((bgmac->feature_flags & BGMAC_FEAT_SRAB) && !bgmac_b53_pdata.regs) { -+ bgmac_b53_pdata.regs = ioremap(0x18007000, 0x1000); -+ -+ err = platform_device_register(&bgmac_b53_dev); -+ if (!err) -+ bgmac->b53_device = &bgmac_b53_dev; -+ } -+ - err = register_netdev(bgmac->net_dev); - if (err) { - dev_err(bgmac->dev, "Cannot register net device\n"); -@@ -1568,6 +1588,10 @@ EXPORT_SYMBOL_GPL(bgmac_enet_probe); - - void bgmac_enet_remove(struct bgmac *bgmac) - { -+ if (bgmac->b53_device) -+ platform_device_unregister(&bgmac_b53_dev); -+ bgmac->b53_device = NULL; -+ - unregister_netdev(bgmac->net_dev); - phy_disconnect(bgmac->net_dev->phydev); - netif_napi_del(&bgmac->napi); ---- a/drivers/net/ethernet/broadcom/bgmac.h -+++ b/drivers/net/ethernet/broadcom/bgmac.h -@@ -388,6 +388,7 @@ - #define BGMAC_FEAT_CC4_IF_SW_TYPE_RGMII BIT(18) - #define BGMAC_FEAT_CC7_IF_TYPE_RGMII BIT(19) - #define BGMAC_FEAT_IDM_MASK BIT(20) -+#define BGMAC_FEAT_SRAB BIT(21) - - struct bgmac_slot_info { - union { -@@ -495,6 +496,9 @@ struct bgmac { - void (*cmn_maskset32)(struct bgmac *bgmac, u16 offset, u32 mask, - u32 set); - int (*phy_connect)(struct bgmac *bgmac); -+ -+ /* platform device for associated switch */ -+ struct platform_device *b53_device; - }; - - struct bgmac *bgmac_alloc(struct device *dev); diff --git a/6.11/target/linux/generic/hack-6.11/780-usb-net-MeigLink_modem_support.patch b/6.11/target/linux/generic/hack-6.11/780-usb-net-MeigLink_modem_support.patch deleted file mode 100644 index d010231e..00000000 --- a/6.11/target/linux/generic/hack-6.11/780-usb-net-MeigLink_modem_support.patch +++ /dev/null @@ -1,69 +0,0 @@ -From f81700b6bb2eda3756247bce472d8eaf6f466f61 Mon Sep 17 00:00:00 2001 -From: OpenWrt community -Date: Wed, 13 Jul 2022 13:49:26 +0200 -Subject: [PATCH] net/usb/qmi_wwan: add MeigLink modem support - ---- - drivers/net/usb/qmi_wwan.c | 1 + - drivers/usb/serial/option.c | 7 +++++++ - 2 files changed, 8 insertions(+) - ---- a/drivers/net/usb/qmi_wwan.c -+++ b/drivers/net/usb/qmi_wwan.c -@@ -1083,12 +1083,18 @@ static const struct usb_device_id produc - USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0x581d, USB_CLASS_VENDOR_SPEC, 1, 7), - .driver_info = (unsigned long)&qmi_wwan_info, - }, -+ { /* Meiglink SGM828 */ -+ USB_DEVICE_AND_INTERFACE_INFO(0x2dee, 0x4d49, USB_CLASS_VENDOR_SPEC, 0x10, 0x05), -+ .driver_info = (unsigned long)&qmi_wwan_info, -+ }, -+ - {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0125)}, /* Quectel EC25, EC20 R2.0 Mini PCIe */ - {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0306)}, /* Quectel EP06/EG06/EM06 */ - {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0512)}, /* Quectel EG12/EM12 */ - {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0620)}, /* Quectel EM160R-GL */ - {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0800)}, /* Quectel RM500Q-GL */ - {QMI_MATCH_FF_FF_FF(0x2c7c, 0x0801)}, /* Quectel RM520N */ -+ {QMI_MATCH_FF_FF_FF(0x05c6, 0xf601)}, /* MeigLink SLM750 */ - - /* 3. Combined interface devices matching on interface number */ - {QMI_FIXED_INTF(0x0408, 0xea42, 4)}, /* Yota / Megafon M100-1 */ ---- a/drivers/usb/serial/option.c -+++ b/drivers/usb/serial/option.c -@@ -247,6 +247,11 @@ static void option_instat_callback(struc - #define UBLOX_PRODUCT_R410M 0x90b2 - /* These Yuga products use Qualcomm's vendor ID */ - #define YUGA_PRODUCT_CLM920_NC5 0x9625 -+/* These MeigLink products use Qualcomm's vendor ID */ -+#define MEIGLINK_PRODUCT_SLM750 0xf601 -+ -+#define MEIGLINK_VENDOR_ID 0x2dee -+#define MEIGLINK_PRODUCT_SLM828 0x4d49 - - #define QUECTEL_VENDOR_ID 0x2c7c - /* These Quectel products use Quectel's vendor ID */ -@@ -1156,6 +1161,11 @@ static const struct usb_device_id option - { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x0023)}, /* ONYX 3G device */ - { USB_DEVICE(QUALCOMM_VENDOR_ID, 0x9000), /* SIMCom SIM5218 */ - .driver_info = NCTRL(0) | NCTRL(1) | NCTRL(2) | NCTRL(3) | RSVD(4) }, -+ /* MeiG */ -+ { USB_DEVICE_AND_INTERFACE_INFO(MEIGLINK_VENDOR_ID, MEIGLINK_PRODUCT_SLM828, USB_CLASS_VENDOR_SPEC, 0x10, 0x01) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(MEIGLINK_VENDOR_ID, MEIGLINK_PRODUCT_SLM828, USB_CLASS_VENDOR_SPEC, 0x10, 0x02) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(MEIGLINK_VENDOR_ID, MEIGLINK_PRODUCT_SLM828, USB_CLASS_VENDOR_SPEC, 0x10, 0x03) }, -+ { USB_DEVICE_AND_INTERFACE_INFO(MEIGLINK_VENDOR_ID, MEIGLINK_PRODUCT_SLM828, USB_CLASS_VENDOR_SPEC, 0x10, 0x04) }, - /* Quectel products using Qualcomm vendor ID */ - { USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC15)}, - { USB_DEVICE(QUALCOMM_VENDOR_ID, QUECTEL_PRODUCT_UC20), -@@ -1197,6 +1207,11 @@ static const struct usb_device_id option - .driver_info = ZLP }, - { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96), - .driver_info = RSVD(4) }, -+ /* Meiglink products using Qualcomm vendor ID */ -+ // Works OK. In case of some issues check macros that are used by Quectel Products -+ { USB_DEVICE_AND_INTERFACE_INFO(QUALCOMM_VENDOR_ID, MEIGLINK_PRODUCT_SLM750, 0xff, 0xff, 0xff), -+ .driver_info = NUMEP2 }, -+ { USB_DEVICE_AND_INTERFACE_INFO(QUALCOMM_VENDOR_ID, MEIGLINK_PRODUCT_SLM750, 0xff, 0, 0) }, - { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0xff, 0xff), - .driver_info = RSVD(1) | RSVD(2) | RSVD(3) | RSVD(4) | NUMEP2 }, - { USB_DEVICE_AND_INTERFACE_INFO(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EP06, 0xff, 0, 0) }, diff --git a/6.11/target/linux/generic/hack-6.11/781-usb-net-rndis-support-asr.patch b/6.11/target/linux/generic/hack-6.11/781-usb-net-rndis-support-asr.patch deleted file mode 100644 index 47339b6c..00000000 --- a/6.11/target/linux/generic/hack-6.11/781-usb-net-rndis-support-asr.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 9fabf60187f1fa19e6f6bb5441587d485bd534b0 Mon Sep 17 00:00:00 2001 -From: Daniel Golle -Date: Tue, 9 Apr 2024 17:06:38 +0100 -Subject: [PATCH] rndis_host: add a bunch of USB IDs - -Add a bunch of USB IDs found in various places online to the -RNDIS USB network driver. - -Signed-off-by: Daniel Golle ---- - drivers/net/usb/rndis_host.c | 40 ++++++++++++++++++++++ - 1 file changed, 40 insertions(+) - ---- a/drivers/net/usb/rndis_host.c -+++ b/drivers/net/usb/rndis_host.c -@@ -630,6 +630,16 @@ static const struct driver_info zte_rndi - .tx_fixup = rndis_tx_fixup, - }; - -+static const struct driver_info asr_rndis_info = { -+ .description = "Asr RNDIS device", -+ .flags = FLAG_WWAN | FLAG_POINTTOPOINT | FLAG_FRAMING_RN | FLAG_NO_SETINT | FLAG_NOARP, -+ .bind = rndis_bind, -+ .unbind = rndis_unbind, -+ .status = rndis_status, -+ .rx_fixup = rndis_rx_fixup, -+ .tx_fixup = rndis_tx_fixup, -+}; -+ - /*-------------------------------------------------------------------------*/ - - static const struct usb_device_id products [] = { -@@ -666,6 +676,36 @@ static const struct usb_device_id produc - USB_INTERFACE_INFO(USB_CLASS_WIRELESS_CONTROLLER, 1, 3), - .driver_info = (unsigned long) &rndis_info, - }, { -+ /* Quectel EG060V rndis device */ -+ USB_DEVICE_AND_INTERFACE_INFO(0x2c7c, 0x6004, -+ USB_CLASS_WIRELESS_CONTROLLER, 1, 3), -+ .driver_info = (unsigned long) &asr_rndis_info, -+}, { -+ /* Quectel EC200A rndis device */ -+ USB_DEVICE_AND_INTERFACE_INFO(0x2c7c, 0x6005, -+ USB_CLASS_WIRELESS_CONTROLLER, 1, 3), -+ .driver_info = (unsigned long) &asr_rndis_info, -+}, { -+ /* Quectel EC200T rndis device */ -+ USB_DEVICE_AND_INTERFACE_INFO(0x2c7c, 0x6026, -+ USB_CLASS_WIRELESS_CONTROLLER, 1, 3), -+ .driver_info = (unsigned long) &asr_rndis_info, -+}, { -+ /* Simcom A7906E rndis device */ -+ USB_DEVICE_AND_INTERFACE_INFO(0x1e0e, 0x9011, -+ USB_CLASS_WIRELESS_CONTROLLER, 1, 3), -+ .driver_info = (unsigned long) &asr_rndis_info, -+}, { -+ /* Meig SLM770A */ -+ USB_DEVICE_AND_INTERFACE_INFO(0x2dee, 0x4d57, -+ USB_CLASS_WIRELESS_CONTROLLER, 1, 3), -+ .driver_info = (unsigned long) &asr_rndis_info, -+}, { -+ /* Meig SLM828 */ -+ USB_DEVICE_AND_INTERFACE_INFO(0x2dee, 0x4d49, -+ USB_CLASS_WIRELESS_CONTROLLER, 1, 3), -+ .driver_info = (unsigned long) &asr_rndis_info, -+}, { - /* Novatel Verizon USB730L */ - USB_INTERFACE_INFO(USB_CLASS_MISC, 4, 1), - .driver_info = (unsigned long) &rndis_info, diff --git a/6.11/target/linux/generic/hack-6.11/901-debloat_sock_diag.patch b/6.11/target/linux/generic/hack-6.11/901-debloat_sock_diag.patch deleted file mode 100644 index af000f76..00000000 --- a/6.11/target/linux/generic/hack-6.11/901-debloat_sock_diag.patch +++ /dev/null @@ -1,181 +0,0 @@ -From 3b6115d6b57a263bdc8c9b1df273bd4a7955eead Mon Sep 17 00:00:00 2001 -From: Felix Fietkau -Date: Sat, 8 Jul 2017 08:16:31 +0200 -Subject: debloat: add some debloat patches, strip down procfs and make O_DIRECT support optional, saves ~15K after lzma on MIPS - -Signed-off-by: Felix Fietkau ---- - net/Kconfig | 3 +++ - net/core/Makefile | 3 ++- - net/core/sock.c | 2 ++ - net/ipv4/Kconfig | 1 + - net/netlink/Kconfig | 1 + - net/packet/Kconfig | 1 + - net/unix/Kconfig | 1 + - 7 files changed, 11 insertions(+), 1 deletion(-) - ---- a/net/Kconfig -+++ b/net/Kconfig -@@ -129,6 +129,9 @@ source "net/mptcp/Kconfig" - - endif # if INET - -+config SOCK_DIAG -+ bool -+ - config NETWORK_SECMARK - bool "Security Marking" - help ---- a/net/core/Makefile -+++ b/net/core/Makefile -@@ -11,12 +11,13 @@ obj-$(CONFIG_SYSCTL) += sysctl_net_core. - - obj-y += dev.o dev_addr_lists.o dst.o netevent.o \ - neighbour.o rtnetlink.o utils.o link_watch.o filter.o \ -- sock_diag.o dev_ioctl.o tso.o sock_reuseport.o \ -+ dev_ioctl.o tso.o sock_reuseport.o \ - fib_notifier.o xdp.o flow_offload.o gro.o \ - netdev-genl.o netdev-genl-gen.o gso.o - - obj-$(CONFIG_NETDEV_ADDR_LIST_TEST) += dev_addr_lists_test.o - -+obj-$(CONFIG_SOCK_DIAG) += sock_diag.o - obj-y += net-sysfs.o - obj-$(CONFIG_PAGE_POOL) += page_pool.o - obj-$(CONFIG_PROC_FS) += net-procfs.o ---- a/net/core/sock.c -+++ b/net/core/sock.c -@@ -118,6 +118,7 @@ - #include - #include - #include -+#include - - #include - -@@ -150,6 +151,7 @@ - - static DEFINE_MUTEX(proto_list_mutex); - static LIST_HEAD(proto_list); -+DEFINE_COOKIE(sock_cookie); - - static void sock_def_write_space_wfree(struct sock *sk); - static void sock_def_write_space(struct sock *sk); -@@ -590,6 +592,21 @@ discard_and_relse: - } - EXPORT_SYMBOL(__sk_receive_skb); - -+u64 __sock_gen_cookie(struct sock *sk) -+{ -+ u64 res = atomic64_read(&sk->sk_cookie); -+ -+ if (!res) { -+ u64 new = gen_cookie_next(&sock_cookie); -+ -+ atomic64_cmpxchg(&sk->sk_cookie, res, new); -+ -+ /* Another thread might have changed sk_cookie before us. */ -+ res = atomic64_read(&sk->sk_cookie); -+ } -+ return res; -+} -+ - INDIRECT_CALLABLE_DECLARE(struct dst_entry *ip6_dst_check(struct dst_entry *, - u32)); - INDIRECT_CALLABLE_DECLARE(struct dst_entry *ipv4_dst_check(struct dst_entry *, -@@ -2247,9 +2264,11 @@ static void __sk_free(struct sock *sk) - if (likely(sk->sk_net_refcnt)) - sock_inuse_add(sock_net(sk), -1); - -+#ifdef CONFIG_SOCK_DIAG - if (unlikely(sk->sk_net_refcnt && sock_diag_has_destroy_listeners(sk))) - sock_diag_broadcast_destroy(sk); - else -+#endif - sk_destruct(sk); - } - ---- a/net/core/sock_diag.c -+++ b/net/core/sock_diag.c -@@ -12,7 +12,6 @@ - #include - #include - #include --#include - #include - #include - -@@ -21,23 +20,6 @@ static int (*inet_rcv_compat)(struct sk_ - static DEFINE_MUTEX(sock_diag_table_mutex); - static struct workqueue_struct *broadcast_wq; - --DEFINE_COOKIE(sock_cookie); -- --u64 __sock_gen_cookie(struct sock *sk) --{ -- u64 res = atomic64_read(&sk->sk_cookie); -- -- if (!res) { -- u64 new = gen_cookie_next(&sock_cookie); -- -- atomic64_cmpxchg(&sk->sk_cookie, res, new); -- -- /* Another thread might have changed sk_cookie before us. */ -- res = atomic64_read(&sk->sk_cookie); -- } -- return res; --} -- - int sock_diag_check_cookie(struct sock *sk, const __u32 *cookie) - { - u64 res; ---- a/net/ipv4/Kconfig -+++ b/net/ipv4/Kconfig -@@ -423,6 +423,7 @@ config INET_TUNNEL - - config INET_DIAG - tristate "INET: socket monitoring interface" -+ select SOCK_DIAG - default y - help - Support for INET (TCP, DCCP, etc) socket monitoring interface used by ---- a/net/netlink/Kconfig -+++ b/net/netlink/Kconfig -@@ -5,6 +5,7 @@ - - config NETLINK_DIAG - tristate "NETLINK: socket monitoring interface" -+ select SOCK_DIAG - default n - help - Support for NETLINK socket monitoring interface used by the ss tool. ---- a/net/packet/Kconfig -+++ b/net/packet/Kconfig -@@ -19,6 +19,7 @@ config PACKET - config PACKET_DIAG - tristate "Packet: sockets monitoring interface" - depends on PACKET -+ select SOCK_DIAG - default n - help - Support for PF_PACKET sockets monitoring interface used by the ss tool. ---- a/net/unix/Kconfig -+++ b/net/unix/Kconfig -@@ -29,6 +29,7 @@ config AF_UNIX_OOB - config UNIX_DIAG - tristate "UNIX: socket monitoring interface" - depends on UNIX -+ select SOCK_DIAG - default n - help - Support for UNIX socket monitoring interface used by the ss tool. ---- a/net/xdp/Kconfig -+++ b/net/xdp/Kconfig -@@ -10,6 +10,7 @@ config XDP_SOCKETS - config XDP_SOCKETS_DIAG - tristate "XDP sockets: monitoring interface" - depends on XDP_SOCKETS -+ select SOCK_DIAG - default n - help - Support for PF_XDP sockets monitoring interface used by the ss tool. diff --git a/6.11/target/linux/generic/hack-6.11/904-debloat_dma_buf.patch b/6.11/target/linux/generic/hack-6.11/904-debloat_dma_buf.patch deleted file mode 100644 index 8fdaab5a..00000000 --- a/6.11/target/linux/generic/hack-6.11/904-debloat_dma_buf.patch +++ /dev/null @@ -1,93 +0,0 @@ -From e3692cb2fcd5ba1244512a0f43b8118f65f1c375 Mon Sep 17 00:00:00 2001 -From: Felix Fietkau -Date: Sat, 8 Jul 2017 08:20:43 +0200 -Subject: debloat: dmabuf - -Signed-off-by: Felix Fietkau ---- - drivers/base/Kconfig | 2 +- - drivers/dma-buf/Makefile | 10 +++++++--- - drivers/dma-buf/dma-buf.c | 4 +++- - kernel/sched/core.c | 1 + - 4 files changed, 12 insertions(+), 5 deletions(-) - ---- a/drivers/base/Kconfig -+++ b/drivers/base/Kconfig -@@ -198,7 +198,7 @@ config SOC_BUS - source "drivers/base/regmap/Kconfig" - - config DMA_SHARED_BUFFER -- bool -+ tristate - default n - select IRQ_WORK - help ---- a/drivers/dma-buf/heaps/Makefile -+++ b/drivers/dma-buf/heaps/Makefile -@@ -1,3 +1,3 @@ - # SPDX-License-Identifier: GPL-2.0 --obj-$(CONFIG_DMABUF_HEAPS_SYSTEM) += system_heap.o --obj-$(CONFIG_DMABUF_HEAPS_CMA) += cma_heap.o -+dma-buf-objs-$(CONFIG_DMABUF_HEAPS_SYSTEM) += system_heap.o -+dma-buf-objs-$(CONFIG_DMABUF_HEAPS_CMA) += cma_heap.o ---- a/drivers/dma-buf/Makefile -+++ b/drivers/dma-buf/Makefile -@@ -1,12 +1,14 @@ - # SPDX-License-Identifier: GPL-2.0-only --obj-y := dma-buf.o dma-fence.o dma-fence-array.o dma-fence-chain.o \ -+obj-$(CONFIG_DMA_SHARED_BUFFER) := dma-shared-buffer.o -+ -+dma-buf-objs-y := dma-buf.o dma-fence.o dma-fence-array.o dma-fence-chain.o \ - dma-fence-unwrap.o dma-resv.o --obj-$(CONFIG_DMABUF_HEAPS) += dma-heap.o --obj-$(CONFIG_DMABUF_HEAPS) += heaps/ --obj-$(CONFIG_SYNC_FILE) += sync_file.o --obj-$(CONFIG_SW_SYNC) += sw_sync.o sync_debug.o --obj-$(CONFIG_UDMABUF) += udmabuf.o --obj-$(CONFIG_DMABUF_SYSFS_STATS) += dma-buf-sysfs-stats.o -+dma-buf-objs-$(CONFIG_DMABUF_HEAPS) += dma-heap.o -+obj-$(CONFIG_DMABUF_HEAPS) += heaps/ -+dma-buf-objs-$(CONFIG_SYNC_FILE) += sync_file.o -+dma-buf-objs-$(CONFIG_SW_SYNC) += sw_sync.o sync_debug.o -+dma-buf-objs-$(CONFIG_UDMABUF) += udmabuf.o -+dma-buf-objs-$(CONFIG_DMABUF_SYSFS_STATS) += dma-buf-sysfs-stats.o - - dmabuf_selftests-y := \ - selftest.o \ -@@ -15,4 +17,6 @@ dmabuf_selftests-y := \ - st-dma-fence-unwrap.o \ - st-dma-resv.o - --obj-$(CONFIG_DMABUF_SELFTESTS) += dmabuf_selftests.o -+dma-buf-objs-$(CONFIG_DMABUF_SELFTESTS) += dmabuf_selftests.o -+ -+dma-shared-buffer-objs := $(dma-buf-objs-y) ---- a/drivers/dma-buf/dma-buf.c -+++ b/drivers/dma-buf/dma-buf.c -@@ -1731,4 +1731,5 @@ static void __exit dma_buf_deinit(void) - kern_unmount(dma_buf_mnt); - dma_buf_uninit_sysfs_statistics(); - } --__exitcall(dma_buf_deinit); -+module_exit(dma_buf_deinit); -+MODULE_LICENSE("GPL"); ---- a/kernel/sched/core.c -+++ b/kernel/sched/core.c -@@ -4487,6 +4487,7 @@ int wake_up_state(struct task_struct *p, - { - return try_to_wake_up(p, state, 0); - } -+EXPORT_SYMBOL_GPL(wake_up_state); - - /* - * Perform scheduler related setup for a newly forked process p. ---- a/fs/d_path.c -+++ b/fs/d_path.c -@@ -314,6 +314,7 @@ char *dynamic_dname(char *buffer, int bu - buffer += buflen - sz; - return memcpy(buffer, temp, sz); - } -+EXPORT_SYMBOL_GPL(dynamic_dname); - - char *simple_dname(struct dentry *dentry, char *buffer, int buflen) - { diff --git a/6.11/target/linux/generic/hack-6.11/920-device_tree_cmdline.patch b/6.11/target/linux/generic/hack-6.11/920-device_tree_cmdline.patch deleted file mode 100644 index 2a43ffb7..00000000 --- a/6.11/target/linux/generic/hack-6.11/920-device_tree_cmdline.patch +++ /dev/null @@ -1,21 +0,0 @@ -From e08bcbbaa52fcc41f02743fd2e62a33255ce52da Mon Sep 17 00:00:00 2001 -From: OpenWrt community -Date: Wed, 13 Jul 2022 13:52:28 +0200 -Subject: [PATCH] of/ftd: add device tree cmdline - ---- - drivers/of/fdt.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- a/drivers/of/fdt.c -+++ b/drivers/of/fdt.c -@@ -1185,6 +1185,9 @@ int __init early_init_dt_scan_chosen(cha - p = of_get_flat_dt_prop(node, "bootargs", &l); - if (p != NULL && l > 0) - strscpy(cmdline, p, min(l, COMMAND_LINE_SIZE)); -+ p = of_get_flat_dt_prop(node, "bootargs-append", &l); -+ if (p != NULL && l > 0) -+ strlcat(cmdline, p, min_t(int, strlen(cmdline) + (int)l, COMMAND_LINE_SIZE)); - - handle_cmdline: - /* diff --git a/6.11/target/linux/generic/hack-6.11/998-ndpi-hook.patch b/6.11/target/linux/generic/hack-6.11/998-ndpi-hook.patch deleted file mode 100644 index 1c8679ba..00000000 --- a/6.11/target/linux/generic/hack-6.11/998-ndpi-hook.patch +++ /dev/null @@ -1,81 +0,0 @@ -diff -urpN linux-6.1.38.old/include/net/netfilter/nf_conntrack.h linux-6.1.38/include/net/netfilter/nf_conntrack.h ---- linux-6.1.38.old/include/net/netfilter/nf_conntrack.h 2023-07-05 23:27:38.000000000 +0600 -+++ linux-6.1.38/include/net/netfilter/nf_conntrack.h 2023-07-14 12:34:56.663750711 +0600 -@@ -362,6 +362,11 @@ static inline struct nf_conntrack_net *n - return net_generic(net, nf_conntrack_net_id); - } - -+#ifdef CONFIG_NF_CONNTRACK_DESTROY_HOOK -+void register_nf_ct_destroy_hook(void (*hook)(struct nf_conn *)); -+void unregister_nf_ct_destroy_hook(void); -+#endif -+ - #define NF_CT_STAT_INC(net, count) __this_cpu_inc((net)->ct.stat->count) - #define NF_CT_STAT_INC_ATOMIC(net, count) this_cpu_inc((net)->ct.stat->count) - #define NF_CT_STAT_ADD_ATOMIC(net, count, v) this_cpu_add((net)->ct.stat->count, (v)) -diff -urpN linux-6.1.38.old/net/netfilter/Kconfig linux-6.1.38/net/netfilter/Kconfig ---- linux-6.1.38.old/net/netfilter/Kconfig 2023-07-05 23:27:38.000000000 +0600 -+++ linux-6.1.38/net/netfilter/Kconfig 2023-07-14 12:34:11.966879899 +0600 -@@ -76,11 +76,15 @@ config NETFILTER_NETLINK_OSF - If this option is enabled, the kernel will include support - for passive OS fingerprint via NFNETLINK. - -+config NF_CONNTRACK_DESTROY_HOOK -+ bool -+ - config NF_CONNTRACK - tristate "Netfilter connection tracking support" - default m if NETFILTER_ADVANCED=n - select NF_DEFRAG_IPV4 - select NF_DEFRAG_IPV6 if IPV6 != n -+ select NF_CONNTRACK_DESTROY_HOOK - help - Connection tracking keeps a record of what packets have passed - through your machine, in order to figure out how they are related -diff -urpN linux-6.1.38.old/net/netfilter/nf_conntrack_core.c linux-6.1.38/net/netfilter/nf_conntrack_core.c ---- linux-6.1.38.old/net/netfilter/nf_conntrack_core.c 2023-07-05 23:27:38.000000000 +0600 -+++ linux-6.1.38/net/netfilter/nf_conntrack_core.c 2023-07-14 12:33:45.580092713 +0600 -@@ -582,9 +582,30 @@ static void destroy_gre_conntrack(struct - #endif - } - -+#ifdef CONFIG_NF_CONNTRACK_DESTROY_HOOK -+ -+static void (*nf_ct_destroy_hook)(struct nf_conn *) __rcu __read_mostly = NULL; -+ -+void register_nf_ct_destroy_hook(void (*hook)(struct nf_conn *)) -+{ -+ rcu_assign_pointer(nf_ct_destroy_hook, hook); -+} -+EXPORT_SYMBOL(register_nf_ct_destroy_hook); -+ -+void unregister_nf_ct_destroy_hook(void) -+{ -+ rcu_assign_pointer(nf_ct_destroy_hook, NULL); -+} -+ -+EXPORT_SYMBOL(unregister_nf_ct_destroy_hook); -+#endif -+ - void nf_ct_destroy(struct nf_conntrack *nfct) - { - struct nf_conn *ct = (struct nf_conn *)nfct; -+#ifdef CONFIG_NF_CONNTRACK_DESTROY_HOOK -+ void (*hook)(struct nf_conn *); -+#endif - - pr_debug("%s(%p)\n", __func__, ct); - WARN_ON(refcount_read(&nfct->use) != 0); -@@ -594,6 +615,12 @@ void nf_ct_destroy(struct nf_conntrack * - return; - } - -+#ifdef CONFIG_NF_CONNTRACK_DESTROY_HOOK -+ hook = rcu_dereference(nf_ct_destroy_hook); -+ if (hook) -+ hook(ct); -+#endif -+ - if (unlikely(nf_ct_protonum(ct) == IPPROTO_GRE)) - destroy_gre_conntrack(ct); - diff --git a/6.11/target/linux/generic/hack-6.11/999-mptcp-next.patch b/6.11/target/linux/generic/hack-6.11/999-mptcp-next.patch deleted file mode 100644 index 2961be19..00000000 --- a/6.11/target/linux/generic/hack-6.11/999-mptcp-next.patch +++ /dev/null @@ -1,2184 +0,0 @@ -From 29913eae8451264716a71485652e9230508cfde6 Mon Sep 17 00:00:00 2001 -From: "Matthieu Baerts (NGI0)" -Date: Mon, 16 Sep 2024 05:52:07 +0000 -Subject: [PATCH 08/28] mptcp: pm: send ACK on non stale subflows - -If the subflow is considered as "staled", it is better to avoid it to -send an ACK carrying an ADD_ADDR or RM_ADDR. Another subflow, if any, -will then be selected. - -Reviewed-by: Mat Martineau -Signed-off-by: Matthieu Baerts (NGI0) ---- - net/mptcp/pm_netlink.c | 14 +++++++++++--- - 1 file changed, 11 insertions(+), 3 deletions(-) - -diff --git a/net/mptcp/pm_netlink.c b/net/mptcp/pm_netlink.c -index 64fe0e7d87d7..fe34297ea6dc 100644 ---- a/net/mptcp/pm_netlink.c -+++ b/net/mptcp/pm_netlink.c -@@ -781,7 +781,7 @@ bool mptcp_pm_nl_is_init_remote_addr(struct mptcp_sock *msk, - - void mptcp_pm_nl_addr_send_ack(struct mptcp_sock *msk) - { -- struct mptcp_subflow_context *subflow; -+ struct mptcp_subflow_context *subflow, *alt = NULL; - - msk_owned_by_me(msk); - lockdep_assert_held(&msk->pm.lock); -@@ -792,10 +792,18 @@ void mptcp_pm_nl_addr_send_ack(struct mptcp_sock *msk) - - mptcp_for_each_subflow(msk, subflow) { - if (__mptcp_subflow_active(subflow)) { -- mptcp_pm_send_ack(msk, subflow, false, false); -- break; -+ if (!subflow->stale) { -+ mptcp_pm_send_ack(msk, subflow, false, false); -+ return; -+ } -+ -+ if (!alt) -+ alt = subflow; - } - } -+ -+ if (alt) -+ mptcp_pm_send_ack(msk, alt, false, false); - } - - int mptcp_pm_nl_mp_prio_send_ack(struct mptcp_sock *msk, --- -2.46.0 - -From b43cba06abd7a1b5b1841700345bf44f854ce043 Mon Sep 17 00:00:00 2001 -From: Gang Yan -Date: Mon, 16 Sep 2024 05:52:08 +0000 -Subject: [PATCH 09/28] mptcp: annotate data-races around - subflow->fully_established - -We introduce the same handling for potential data races with the -'fully_established' flag in subflow as previously done for -msk->fully_established. - -Additionally, we make a crucial change: convert the subflow's -'fully_established' from 'bit_field' to 'bool' type. This is -necessary because methods for avoiding data races don't work well -with 'bit_field'. Specifically, the 'READ_ONCE' needs to know -the size of the variable being accessed, which is not supported in -'bit_field'. Also, 'test_bit' expect the address of 'bit_field'. - -Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/516 -Signed-off-by: Gang Yan -Reviewed-by: Matthieu Baerts (NGI0) ---- - net/mptcp/diag.c | 2 +- - net/mptcp/options.c | 4 ++-- - net/mptcp/protocol.c | 2 +- - net/mptcp/protocol.h | 6 +++--- - net/mptcp/subflow.c | 6 +++--- - 5 files changed, 10 insertions(+), 10 deletions(-) - -diff --git a/net/mptcp/diag.c b/net/mptcp/diag.c -index 2d3efb405437..02205f7994d7 100644 ---- a/net/mptcp/diag.c -+++ b/net/mptcp/diag.c -@@ -47,7 +47,7 @@ static int subflow_get_info(struct sock *sk, struct sk_buff *skb) - flags |= MPTCP_SUBFLOW_FLAG_BKUP_REM; - if (sf->request_bkup) - flags |= MPTCP_SUBFLOW_FLAG_BKUP_LOC; -- if (sf->fully_established) -+ if (READ_ONCE(sf->fully_established)) - flags |= MPTCP_SUBFLOW_FLAG_FULLY_ESTABLISHED; - if (sf->conn_finished) - flags |= MPTCP_SUBFLOW_FLAG_CONNECTED; -diff --git a/net/mptcp/options.c b/net/mptcp/options.c -index 370c3836b771..1603b3702e22 100644 ---- a/net/mptcp/options.c -+++ b/net/mptcp/options.c -@@ -461,7 +461,7 @@ static bool mptcp_established_options_mp(struct sock *sk, struct sk_buff *skb, - return false; - - /* MPC/MPJ needed only on 3rd ack packet, DATA_FIN and TCP shutdown take precedence */ -- if (subflow->fully_established || snd_data_fin_enable || -+ if (READ_ONCE(subflow->fully_established) || snd_data_fin_enable || - subflow->snd_isn != TCP_SKB_CB(skb)->seq || - sk->sk_state != TCP_ESTABLISHED) - return false; -@@ -930,7 +930,7 @@ static bool check_fully_established(struct mptcp_sock *msk, struct sock *ssk, - /* here we can process OoO, in-window pkts, only in-sequence 4th ack - * will make the subflow fully established - */ -- if (likely(subflow->fully_established)) { -+ if (likely(READ_ONCE(subflow->fully_established))) { - /* on passive sockets, check for 3rd ack retransmission - * note that msk is always set by subflow_syn_recv_sock() - * for mp_join subflows -diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c -index c2317919fc14..833fb28d8936 100644 ---- a/net/mptcp/protocol.c -+++ b/net/mptcp/protocol.c -@@ -3493,7 +3493,7 @@ static void schedule_3rdack_retransmission(struct sock *ssk) - struct tcp_sock *tp = tcp_sk(ssk); - unsigned long timeout; - -- if (mptcp_subflow_ctx(ssk)->fully_established) -+ if (READ_ONCE(mptcp_subflow_ctx(ssk)->fully_established)) - return; - - /* reschedule with a timeout above RTT, as we must look only for drop */ -diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h -index 74417aae08d0..bbbf200b0c94 100644 ---- a/net/mptcp/protocol.h -+++ b/net/mptcp/protocol.h -@@ -513,7 +513,6 @@ struct mptcp_subflow_context { - request_bkup : 1, - mp_capable : 1, /* remote is MPTCP capable */ - mp_join : 1, /* remote is JOINing */ -- fully_established : 1, /* path validated */ - pm_notified : 1, /* PM hook called for established status */ - conn_finished : 1, - map_valid : 1, -@@ -532,8 +531,9 @@ struct mptcp_subflow_context { - is_mptfo : 1, /* subflow is doing TFO */ - close_event_done : 1, /* has done the post-closed part */ - __unused : 9; - bool data_avail; - bool scheduled; -+ bool fully_established; /* path validated */ - u32 remote_nonce; - u64 thmac; - u32 local_nonce; -@@ -779,7 +779,7 @@ static inline bool __tcp_can_send(const struct sock *ssk) - static inline bool __mptcp_subflow_active(struct mptcp_subflow_context *subflow) - { - /* can't send if JOIN hasn't completed yet (i.e. is usable for mptcp) */ -- if (subflow->request_join && !subflow->fully_established) -+ if (subflow->request_join && !READ_ONCE(subflow->fully_established)) - return false; - - return __tcp_can_send(mptcp_subflow_tcp_sock(subflow)); -diff --git a/net/mptcp/subflow.c b/net/mptcp/subflow.c -index 1040b3b9696b..4c67c89e0eec 100644 ---- a/net/mptcp/subflow.c -+++ b/net/mptcp/subflow.c -@@ -789,7 +789,7 @@ void __mptcp_subflow_fully_established(struct mptcp_sock *msk, - const struct mptcp_options_received *mp_opt) - { - subflow_set_remote_key(msk, subflow, mp_opt); -- subflow->fully_established = 1; -+ WRITE_ONCE(subflow->fully_established, true); - WRITE_ONCE(msk->fully_established, true); - - if (subflow->is_mptfo) -@@ -1280,7 +1280,7 @@ static bool subflow_can_fallback(struct mptcp_subflow_context *subflow) - else if (READ_ONCE(msk->csum_enabled)) - return !subflow->valid_csum_seen; - else -- return !subflow->fully_established; -+ return !READ_ONCE(subflow->fully_established); - } - - static void mptcp_subflow_fail(struct mptcp_sock *msk, struct sock *ssk) -@@ -2049,7 +2049,7 @@ static void subflow_ulp_clone(const struct request_sock *req, - } else if (subflow_req->mp_join) { - new_ctx->ssn_offset = subflow_req->ssn_offset; - new_ctx->mp_join = 1; -- new_ctx->fully_established = 1; -+ WRITE_ONCE(new_ctx->fully_established, true); - new_ctx->remote_key_valid = 1; - new_ctx->backup = subflow_req->backup; - new_ctx->request_bkup = subflow_req->request_bkup; --- -2.46.0 - -From 2ef0370d529d8d17e63fb196ba097b684535b5c4 Mon Sep 17 00:00:00 2001 -From: Geliang Tang -Date: Mon, 16 Sep 2024 05:52:09 +0000 -Subject: [PATCH 10/28] mptcp: implement mptcp_pm_connection_closed - -The MPTCP path manager event handler mptcp_pm_connection_closed -interface has been added in the commit 1b1c7a0ef7f3 ("mptcp: Add path -manager interface") but it was an empty function from then on. - -With such name, it sounds good to invoke mptcp_event with the -MPTCP_EVENT_CLOSED event type from it. It also removes a bit of -duplicated code. - -Signed-off-by: Geliang Tang -Reviewed-by: Matthieu Baerts (NGI0) ---- - net/mptcp/pm.c | 3 +++ - net/mptcp/protocol.c | 6 ++---- - 2 files changed, 5 insertions(+), 4 deletions(-) - -diff --git a/net/mptcp/pm.c b/net/mptcp/pm.c -index 620264c75dc2..16c336c51940 100644 ---- a/net/mptcp/pm.c -+++ b/net/mptcp/pm.c -@@ -154,6 +154,9 @@ void mptcp_pm_fully_established(struct mptcp_sock *msk, const struct sock *ssk) - void mptcp_pm_connection_closed(struct mptcp_sock *msk) - { - pr_debug("msk=%p\n", msk); -+ -+ if (msk->token) -+ mptcp_event(MPTCP_EVENT_CLOSED, msk, NULL, GFP_KERNEL); - } - - void mptcp_pm_subflow_established(struct mptcp_sock *msk) -diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c -index 833fb28d8936..7cc8d81ee605 100644 ---- a/net/mptcp/protocol.c -+++ b/net/mptcp/protocol.c -@@ -3121,8 +3121,7 @@ bool __mptcp_close(struct sock *sk, long timeout) - - sock_hold(sk); - pr_debug("msk=%p state=%d\n", sk, sk->sk_state); -- if (msk->token) -- mptcp_event(MPTCP_EVENT_CLOSED, msk, NULL, GFP_KERNEL); -+ mptcp_pm_connection_closed(msk); - - if (sk->sk_state == TCP_CLOSE) { - __mptcp_destroy_sock(sk); -@@ -3188,8 +3187,7 @@ static int mptcp_disconnect(struct sock *sk, int flags) - mptcp_stop_rtx_timer(sk); - mptcp_stop_tout_timer(sk); - -- if (msk->token) -- mptcp_event(MPTCP_EVENT_CLOSED, msk, NULL, GFP_KERNEL); -+ mptcp_pm_connection_closed(msk); - - /* msk->subflow is still intact, the following will not free the first - * subflow --- -2.46.0 - -From cc4cbde1802daaac692d1bc6f15fd470c51f987b Mon Sep 17 00:00:00 2001 -From: Geliang Tang -Date: Mon, 16 Sep 2024 05:52:12 +0000 -Subject: [PATCH 13/28] mptcp: add sched_data helpers - -Add a new helper mptcp_sched_data_set_contexts() to set the subflow -pointers array in struct mptcp_sched_data. Add a new helper -mptcp_subflow_ctx_by_pos() to get the given pos subflow from the -contexts array in struct mptcp_sched_data. They will be invoked by -the BPF schedulers to export the subflow pointers to the BPF contexts. - -Signed-off-by: Geliang Tang -Reviewed-by: Mat Martineau ---- - net/mptcp/bpf.c | 14 ++++++++++++++ - net/mptcp/protocol.h | 2 ++ - net/mptcp/sched.c | 22 ++++++++++++++++++++++ - 3 files changed, 38 insertions(+) - -diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c -index 8a16672b94e2..c3d62535eb0c 100644 ---- a/net/mptcp/bpf.c -+++ b/net/mptcp/bpf.c -@@ -29,6 +29,20 @@ static const struct btf_kfunc_id_set bpf_mptcp_fmodret_set = { - .set = &bpf_mptcp_fmodret_ids, - }; - -+__diag_push(); -+__diag_ignore_all("-Wmissing-prototypes", -+ "kfuncs which will be used in BPF programs"); -+ -+__bpf_kfunc struct mptcp_subflow_context * -+bpf_mptcp_subflow_ctx_by_pos(const struct mptcp_sched_data *data, unsigned int pos) -+{ -+ if (pos >= MPTCP_SUBFLOWS_MAX) -+ return NULL; -+ return data->contexts[pos]; -+} -+ -+__diag_pop(); -+ - static int __init bpf_mptcp_kfunc_init(void) - { - return register_btf_fmodret_id_set(&bpf_mptcp_fmodret_set); -diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h -index bbbf200b0c94..a1d06e7e3544 100644 ---- a/net/mptcp/protocol.h -+++ b/net/mptcp/protocol.h -@@ -719,6 +719,8 @@ void __mptcp_subflow_send_ack(struct sock *ssk); - void mptcp_subflow_reset(struct sock *ssk); - void mptcp_subflow_queue_clean(struct sock *sk, struct sock *ssk); - void mptcp_sock_graft(struct sock *sk, struct socket *parent); -+struct mptcp_subflow_context * -+bpf_mptcp_subflow_ctx_by_pos(const struct mptcp_sched_data *data, unsigned int pos); - struct sock *__mptcp_nmpc_sk(struct mptcp_sock *msk); - bool __mptcp_close(struct sock *sk, long timeout); - void mptcp_cancel_work(struct sock *sk); -diff --git a/net/mptcp/sched.c b/net/mptcp/sched.c -index 78ed508ebc1b..5257bc6c8cd6 100644 ---- a/net/mptcp/sched.c -+++ b/net/mptcp/sched.c -@@ -143,6 +143,26 @@ void mptcp_subflow_set_scheduled(struct mptcp_subflow_context *subflow, - WRITE_ONCE(subflow->scheduled, scheduled); - } - -+static void mptcp_sched_data_set_contexts(const struct mptcp_sock *msk, -+ struct mptcp_sched_data *data) -+{ -+ struct mptcp_subflow_context *subflow; -+ int i = 0; -+ -+ mptcp_for_each_subflow(msk, subflow) { -+ if (i == MPTCP_SUBFLOWS_MAX) { -+ pr_warn_once("too many subflows"); -+ break; -+ } -+ mptcp_subflow_set_scheduled(subflow, false); -+ data->contexts[i++] = subflow; -+ } -+ data->subflows = i; -+ -+ for (; i < MPTCP_SUBFLOWS_MAX; i++) -+ data->contexts[i] = NULL; -+} -+ - int mptcp_sched_get_send(struct mptcp_sock *msk) - { - struct mptcp_subflow_context *subflow; -@@ -169,6 +189,7 @@ int mptcp_sched_get_send(struct mptcp_sock *msk) - data.reinject = false; - if (msk->sched == &mptcp_sched_default || !msk->sched) - return mptcp_sched_default_get_subflow(msk, &data); -+ mptcp_sched_data_set_contexts(msk, &data); - return msk->sched->get_subflow(msk, &data); - } - -@@ -191,5 +212,6 @@ int mptcp_sched_get_retrans(struct mptcp_sock *msk) - data.reinject = true; - if (msk->sched == &mptcp_sched_default || !msk->sched) - return mptcp_sched_default_get_subflow(msk, &data); -+ mptcp_sched_data_set_contexts(msk, &data); - return msk->sched->get_subflow(msk, &data); - } --- -2.46.0 - -From a6f63a6b7b8076b59098b684577327a32bf0f5a8 Mon Sep 17 00:00:00 2001 -From: Geliang Tang -Date: Mon, 16 Sep 2024 05:52:13 +0000 -Subject: [PATCH 14/28] bpf: Add bpf_mptcp_sched_ops - -This patch implements a new struct bpf_struct_ops: bpf_mptcp_sched_ops. -Register and unregister the bpf scheduler in .reg and .unreg. - -Add write access for the scheduled flag of struct mptcp_subflow_context -in .btf_struct_access. - -This MPTCP BPF scheduler implementation is similar to BPF TCP CC. And -net/ipv4/bpf_tcp_ca.c is a frame of reference for this patch. - -Acked-by: Paolo Abeni -Reviewed-by: Mat Martineau -Co-developed-by: Matthieu Baerts -Signed-off-by: Matthieu Baerts -Co-developed-by: Gregory Detal -Signed-off-by: Gregory Detal -Signed-off-by: Geliang Tang ---- - net/mptcp/bpf.c | 181 +++++++++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 180 insertions(+), 1 deletion(-) - -diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c -index c3d62535eb0c..89b69ab1cf8e 100644 ---- a/net/mptcp/bpf.c -+++ b/net/mptcp/bpf.c -@@ -10,8 +10,180 @@ - #define pr_fmt(fmt) "MPTCP: " fmt - - #include -+#include -+#include -+#include -+#include - #include "protocol.h" - -+#ifdef CONFIG_BPF_JIT -+static struct bpf_struct_ops bpf_mptcp_sched_ops; -+static const struct btf_type *mptcp_sock_type, *mptcp_subflow_type __read_mostly; -+static u32 mptcp_sock_id, mptcp_subflow_id; -+ -+static const struct bpf_func_proto * -+bpf_mptcp_sched_get_func_proto(enum bpf_func_id func_id, -+ const struct bpf_prog *prog) -+{ -+ switch (func_id) { -+ case BPF_FUNC_sk_storage_get: -+ return &bpf_sk_storage_get_proto; -+ case BPF_FUNC_sk_storage_delete: -+ return &bpf_sk_storage_delete_proto; -+ case BPF_FUNC_skc_to_tcp6_sock: -+ return &bpf_skc_to_tcp6_sock_proto; -+ case BPF_FUNC_skc_to_tcp_sock: -+ return &bpf_skc_to_tcp_sock_proto; -+ default: -+ return bpf_base_func_proto(func_id, prog); -+ } -+} -+ -+static int bpf_mptcp_sched_btf_struct_access(struct bpf_verifier_log *log, -+ const struct bpf_reg_state *reg, -+ int off, int size) -+{ -+ const struct btf_type *t; -+ size_t end; -+ -+ t = btf_type_by_id(reg->btf, reg->btf_id); -+ -+ if (t == mptcp_sock_type) { -+ switch (off) { -+ case offsetof(struct mptcp_sock, snd_burst): -+ end = offsetofend(struct mptcp_sock, snd_burst); -+ break; -+ default: -+ bpf_log(log, "no write support to mptcp_sock at off %d\n", -+ off); -+ return -EACCES; -+ } -+ } else if (t == mptcp_subflow_type) { -+ switch (off) { -+ case offsetof(struct mptcp_subflow_context, avg_pacing_rate): -+ end = offsetofend(struct mptcp_subflow_context, avg_pacing_rate); -+ break; -+ default: -+ bpf_log(log, "no write support to mptcp_subflow_context at off %d\n", -+ off); -+ return -EACCES; -+ } -+ } else { -+ bpf_log(log, "only access to mptcp sock or subflow is supported\n"); -+ return -EACCES; -+ } -+ -+ if (off + size > end) { -+ bpf_log(log, "access beyond %s at off %u size %u ended at %zu", -+ t == mptcp_sock_type ? "mptcp_sock" : "mptcp_subflow_context", -+ off, size, end); -+ return -EACCES; -+ } -+ -+ return NOT_INIT; -+} -+ -+static const struct bpf_verifier_ops bpf_mptcp_sched_verifier_ops = { -+ .get_func_proto = bpf_mptcp_sched_get_func_proto, -+ .is_valid_access = bpf_tracing_btf_ctx_access, -+ .btf_struct_access = bpf_mptcp_sched_btf_struct_access, -+}; -+ -+static int bpf_mptcp_sched_reg(void *kdata, struct bpf_link *link) -+{ -+ return mptcp_register_scheduler(kdata); -+} -+ -+static void bpf_mptcp_sched_unreg(void *kdata, struct bpf_link *link) -+{ -+ mptcp_unregister_scheduler(kdata); -+} -+ -+static int bpf_mptcp_sched_check_member(const struct btf_type *t, -+ const struct btf_member *member, -+ const struct bpf_prog *prog) -+{ -+ return 0; -+} -+ -+static int bpf_mptcp_sched_init_member(const struct btf_type *t, -+ const struct btf_member *member, -+ void *kdata, const void *udata) -+{ -+ const struct mptcp_sched_ops *usched; -+ struct mptcp_sched_ops *sched; -+ u32 moff; -+ -+ usched = (const struct mptcp_sched_ops *)udata; -+ sched = (struct mptcp_sched_ops *)kdata; -+ -+ moff = __btf_member_bit_offset(t, member) / 8; -+ switch (moff) { -+ case offsetof(struct mptcp_sched_ops, name): -+ if (bpf_obj_name_cpy(sched->name, usched->name, -+ sizeof(sched->name)) <= 0) -+ return -EINVAL; -+ if (mptcp_sched_find(usched->name)) -+ return -EEXIST; -+ return 1; -+ } -+ -+ return 0; -+} -+ -+static int bpf_mptcp_sched_init(struct btf *btf) -+{ -+ s32 type_id; -+ -+ type_id = btf_find_by_name_kind(btf, "mptcp_sock", -+ BTF_KIND_STRUCT); -+ if (type_id < 0) -+ return -EINVAL; -+ mptcp_sock_id = type_id; -+ mptcp_sock_type = btf_type_by_id(btf, mptcp_sock_id); -+ -+ type_id = btf_find_by_name_kind(btf, "mptcp_subflow_context", -+ BTF_KIND_STRUCT); -+ if (type_id < 0) -+ return -EINVAL; -+ mptcp_subflow_id = type_id; -+ mptcp_subflow_type = btf_type_by_id(btf, mptcp_subflow_id); -+ -+ return 0; -+} -+ -+static int __bpf_mptcp_sched_get_subflow(struct mptcp_sock *msk, -+ struct mptcp_sched_data *data) -+{ -+ return 0; -+} -+ -+static void __bpf_mptcp_sched_init(struct mptcp_sock *msk) -+{ -+} -+ -+static void __bpf_mptcp_sched_release(struct mptcp_sock *msk) -+{ -+} -+ -+static struct mptcp_sched_ops __bpf_mptcp_sched_ops = { -+ .get_subflow = __bpf_mptcp_sched_get_subflow, -+ .init = __bpf_mptcp_sched_init, -+ .release = __bpf_mptcp_sched_release, -+}; -+ -+static struct bpf_struct_ops bpf_mptcp_sched_ops = { -+ .verifier_ops = &bpf_mptcp_sched_verifier_ops, -+ .reg = bpf_mptcp_sched_reg, -+ .unreg = bpf_mptcp_sched_unreg, -+ .check_member = bpf_mptcp_sched_check_member, -+ .init_member = bpf_mptcp_sched_init_member, -+ .init = bpf_mptcp_sched_init, -+ .name = "mptcp_sched_ops", -+ .cfi_stubs = &__bpf_mptcp_sched_ops, -+}; -+#endif /* CONFIG_BPF_JIT */ -+ - struct mptcp_sock *bpf_mptcp_sock_from_subflow(struct sock *sk) - { - if (sk && sk_fullsock(sk) && sk->sk_protocol == IPPROTO_TCP && sk_is_mptcp(sk)) -@@ -45,6 +217,13 @@ __diag_pop(); - - static int __init bpf_mptcp_kfunc_init(void) - { -- return register_btf_fmodret_id_set(&bpf_mptcp_fmodret_set); -+ int ret; -+ -+ ret = register_btf_fmodret_id_set(&bpf_mptcp_fmodret_set); -+#ifdef CONFIG_BPF_JIT -+ ret = ret ?: register_bpf_struct_ops(&bpf_mptcp_sched_ops, mptcp_sched_ops); -+#endif -+ -+ return ret; - } - late_initcall(bpf_mptcp_kfunc_init); --- -2.46.0 - -From 6e68551820459adac18dd50d189e8bb56f70b5aa Mon Sep 17 00:00:00 2001 -From: Geliang Tang -Date: Mon, 16 Sep 2024 05:52:14 +0000 -Subject: [PATCH 15/28] bpf: Add bpf_mptcp_sched_kfunc_set - -This patch adds a new struct btf_kfunc_id_set for MPTCP scheduler. Add -mptcp_subflow_set_scheduled() and mptcp_sched_data_set_contexts() helpers -into this id_set, and register it in bpf_mptcp_kfunc_init() to make sure -these helpers can be accessed from the BPF context. - -Reviewed-by: Mat Martineau -Signed-off-by: Geliang Tang ---- - net/mptcp/bpf.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c -index 89b69ab1cf8e..2c0fb9bddb9d 100644 ---- a/net/mptcp/bpf.c -+++ b/net/mptcp/bpf.c -@@ -215,11 +215,23 @@ bpf_mptcp_subflow_ctx_by_pos(const struct mptcp_sched_data *data, unsigned int p - - __diag_pop(); - -+BTF_KFUNCS_START(bpf_mptcp_sched_kfunc_ids) -+BTF_ID_FLAGS(func, mptcp_subflow_set_scheduled) -+BTF_ID_FLAGS(func, bpf_mptcp_subflow_ctx_by_pos) -+BTF_KFUNCS_END(bpf_mptcp_sched_kfunc_ids) -+ -+static const struct btf_kfunc_id_set bpf_mptcp_sched_kfunc_set = { -+ .owner = THIS_MODULE, -+ .set = &bpf_mptcp_sched_kfunc_ids, -+}; -+ - static int __init bpf_mptcp_kfunc_init(void) - { - int ret; - - ret = register_btf_fmodret_id_set(&bpf_mptcp_fmodret_set); -+ ret = ret ?: register_btf_kfunc_id_set(BPF_PROG_TYPE_STRUCT_OPS, -+ &bpf_mptcp_sched_kfunc_set); - #ifdef CONFIG_BPF_JIT - ret = ret ?: register_bpf_struct_ops(&bpf_mptcp_sched_ops, mptcp_sched_ops); - #endif --- -2.46.0 - -From 53d163b4553529381a7a50e06eabe7b1e70d27d0 Mon Sep 17 00:00:00 2001 -From: Nicolas Rybowski -Date: Mon, 16 Sep 2024 05:52:15 +0000 -Subject: [PATCH 16/28] selftests/bpf: Add mptcp subflow example - -Move Nicolas' patch into bpf selftests directory. This example adds a -different mark (SO_MARK) on each subflow, and changes the TCP CC only on -the first subflow. - -From the userspace, an application can do a setsockopt() on an MPTCP -socket, and typically the same value will be propagated to all subflows -(paths). If someone wants to have different values per subflow, the -recommended way is to use BPF. So it is good to add such example here, -and make sure there is no regressions. - -This example shows how it is possible to: - - Identify the parent msk of an MPTCP subflow. - Put different sockopt for each subflow of a same MPTCP connection. - -Here especially, two different behaviours are implemented: - - A socket mark (SOL_SOCKET SO_MARK) is put on each subflow of a same - MPTCP connection. The order of creation of the current subflow defines - its mark. The TCP CC algorithm of the very first subflow of an MPTCP - connection is set to "reno". - -This is just to show it is possible to identify an MPTCP connection, and -set socket options, from different SOL levels, per subflow. It is easy -to verify with 'ss' that these modifications have been applied -correctly. That's what the next patch is going to do. - -Nicolas' code comes from: - - commit 4d120186e4d6 ("bpf:examples: update mptcp_set_mark_kern.c") - -from the MPTCP repo https://github.com/multipath-tcp/mptcp_net-next (the -"scripts" branch), and it has been adapted by Geliang. - -Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/76 -Co-developed-by: Geliang Tang -Signed-off-by: Geliang Tang -Signed-off-by: Nicolas Rybowski -Reviewed-by: Mat Martineau ---- - .../selftests/bpf/progs/mptcp_subflow.c | 59 +++++++++++++++++++ - 1 file changed, 59 insertions(+) - create mode 100644 tools/testing/selftests/bpf/progs/mptcp_subflow.c - -diff --git a/tools/testing/selftests/bpf/progs/mptcp_subflow.c b/tools/testing/selftests/bpf/progs/mptcp_subflow.c -new file mode 100644 -index 000000000000..2e28f4a215b5 ---- /dev/null -+++ b/tools/testing/selftests/bpf/progs/mptcp_subflow.c -@@ -0,0 +1,59 @@ -+// SPDX-License-Identifier: GPL-2.0 -+/* Copyright (c) 2020, Tessares SA. */ -+/* Copyright (c) 2024, Kylin Software */ -+ -+/* vmlinux.h, bpf_helpers.h and other 'define' */ -+#include "bpf_tracing_net.h" -+ -+char _license[] SEC("license") = "GPL"; -+ -+char cc[TCP_CA_NAME_MAX] = "reno"; -+ -+/* Associate a subflow counter to each token */ -+struct { -+ __uint(type, BPF_MAP_TYPE_HASH); -+ __uint(key_size, sizeof(__u32)); -+ __uint(value_size, sizeof(__u32)); -+ __uint(max_entries, 100); -+} mptcp_sf SEC(".maps"); -+ -+SEC("sockops") -+int mptcp_subflow(struct bpf_sock_ops *skops) -+{ -+ __u32 init = 1, key, mark, *cnt; -+ struct mptcp_sock *msk; -+ struct bpf_sock *sk; -+ int err; -+ -+ if (skops->op != BPF_SOCK_OPS_TCP_CONNECT_CB) -+ return 1; -+ -+ sk = skops->sk; -+ if (!sk) -+ return 1; -+ -+ msk = bpf_skc_to_mptcp_sock(sk); -+ if (!msk) -+ return 1; -+ -+ key = msk->token; -+ cnt = bpf_map_lookup_elem(&mptcp_sf, &key); -+ if (cnt) { -+ /* A new subflow is added to an existing MPTCP connection */ -+ __sync_fetch_and_add(cnt, 1); -+ mark = *cnt; -+ } else { -+ /* A new MPTCP connection is just initiated and this is its primary subflow */ -+ bpf_map_update_elem(&mptcp_sf, &key, &init, BPF_ANY); -+ mark = init; -+ } -+ -+ /* Set the mark of the subflow's socket based on appearance order */ -+ err = bpf_setsockopt(skops, SOL_SOCKET, SO_MARK, &mark, sizeof(mark)); -+ if (err < 0) -+ return 1; -+ if (mark == 2) -+ err = bpf_setsockopt(skops, SOL_TCP, TCP_CONGESTION, cc, TCP_CA_NAME_MAX); -+ -+ return 1; -+} --- -2.46.0 - -From 6cda8081edf4e3ac7f8ed4353c666db7a09446a8 Mon Sep 17 00:00:00 2001 -From: Geliang Tang -Date: Mon, 16 Sep 2024 05:52:16 +0000 -Subject: [PATCH 17/28] selftests/bpf: Add getsockopt to inspect mptcp subflow - -This patch adds a "cgroup/getsockopt" way to inspect the subflows of an -mptcp socket. That will be used by the next commit to verify the socket -options set on each subflow. - -This extra "cgroup/getsockopt" prog walks the msk->conn_list and use -bpf_core_cast to cast a pointer for readonly. It allows to inspect all -the fields of a structure. - -mptcp_subflow_tcp_sock(), mptcp_for_each_stubflow() and other helpers -related to list_entry have been added into a new progs/mptcp_bpf.h file. - -Suggested-by: Martin KaFai Lau -Signed-off-by: Geliang Tang -Reviewed-by: Matthieu Baerts (NGI0) ---- - MAINTAINERS | 2 +- - tools/testing/selftests/bpf/progs/mptcp_bpf.h | 42 +++++++++++ - .../selftests/bpf/progs/mptcp_subflow.c | 69 +++++++++++++++++++ - 3 files changed, 112 insertions(+), 1 deletion(-) - create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf.h - -diff --git a/MAINTAINERS b/MAINTAINERS -index 77fcd6f802a5..93d705098220 100644 ---- a/MAINTAINERS -+++ b/MAINTAINERS -@@ -16097,7 +16097,7 @@ F: include/net/mptcp.h - F: include/trace/events/mptcp.h - F: include/uapi/linux/mptcp*.h - F: net/mptcp/ --F: tools/testing/selftests/bpf/*/*mptcp*.c -+F: tools/testing/selftests/bpf/*/*mptcp*.[ch] - F: tools/testing/selftests/net/mptcp/ - - NETWORKING [TCP] -diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf.h b/tools/testing/selftests/bpf/progs/mptcp_bpf.h -new file mode 100644 -index 000000000000..179b74c1205f ---- /dev/null -+++ b/tools/testing/selftests/bpf/progs/mptcp_bpf.h -@@ -0,0 +1,42 @@ -+/* SPDX-License-Identifier: (LGPL-2.1 OR BSD-2-Clause) */ -+#ifndef __MPTCP_BPF_H__ -+#define __MPTCP_BPF_H__ -+ -+#include "bpf_experimental.h" -+ -+/* list helpers from include/linux/list.h */ -+static inline int list_is_head(const struct list_head *list, -+ const struct list_head *head) -+{ -+ return list == head; -+} -+ -+#define list_entry(ptr, type, member) \ -+ container_of(ptr, type, member) -+ -+#define list_first_entry(ptr, type, member) \ -+ list_entry((ptr)->next, type, member) -+ -+#define list_next_entry(pos, member) \ -+ list_entry((pos)->member.next, typeof(*(pos)), member) -+ -+#define list_entry_is_head(pos, head, member) \ -+ list_is_head(&pos->member, (head)) -+ -+/* small difference: 'cond_break' has been added in the conditions */ -+#define list_for_each_entry(pos, head, member) \ -+ for (pos = list_first_entry(head, typeof(*pos), member); \ -+ cond_break, !list_entry_is_head(pos, head, member); \ -+ pos = list_next_entry(pos, member)) -+ -+/* mptcp helpers from protocol.h */ -+#define mptcp_for_each_subflow(__msk, __subflow) \ -+ list_for_each_entry(__subflow, &((__msk)->conn_list), node) -+ -+static __always_inline struct sock * -+mptcp_subflow_tcp_sock(const struct mptcp_subflow_context *subflow) -+{ -+ return subflow->tcp_sock; -+} -+ -+#endif -diff --git a/tools/testing/selftests/bpf/progs/mptcp_subflow.c b/tools/testing/selftests/bpf/progs/mptcp_subflow.c -index 2e28f4a215b5..70302477e326 100644 ---- a/tools/testing/selftests/bpf/progs/mptcp_subflow.c -+++ b/tools/testing/selftests/bpf/progs/mptcp_subflow.c -@@ -4,10 +4,12 @@ - - /* vmlinux.h, bpf_helpers.h and other 'define' */ - #include "bpf_tracing_net.h" -+#include "mptcp_bpf.h" - - char _license[] SEC("license") = "GPL"; - - char cc[TCP_CA_NAME_MAX] = "reno"; -+int pid; - - /* Associate a subflow counter to each token */ - struct { -@@ -57,3 +59,70 @@ int mptcp_subflow(struct bpf_sock_ops *skops) - - return 1; - } -+ -+static int _check_getsockopt_subflow_mark(struct mptcp_sock *msk, struct bpf_sockopt *ctx) -+{ -+ struct mptcp_subflow_context *subflow; -+ int i = 0; -+ -+ mptcp_for_each_subflow(msk, subflow) { -+ struct sock *ssk; -+ -+ ssk = mptcp_subflow_tcp_sock(bpf_core_cast(subflow, -+ struct mptcp_subflow_context)); -+ -+ if (ssk->sk_mark != ++i) { -+ ctx->retval = -2; -+ break; -+ } -+ } -+ -+ return 1; -+} -+ -+static int _check_getsockopt_subflow_cc(struct mptcp_sock *msk, struct bpf_sockopt *ctx) -+{ -+ struct mptcp_subflow_context *subflow; -+ -+ mptcp_for_each_subflow(msk, subflow) { -+ struct inet_connection_sock *icsk; -+ struct sock *ssk; -+ -+ ssk = mptcp_subflow_tcp_sock(bpf_core_cast(subflow, -+ struct mptcp_subflow_context)); -+ icsk = bpf_core_cast(ssk, struct inet_connection_sock); -+ -+ if (ssk->sk_mark == 2 && -+ __builtin_memcmp(icsk->icsk_ca_ops->name, cc, TCP_CA_NAME_MAX)) { -+ ctx->retval = -2; -+ break; -+ } -+ } -+ -+ return 1; -+} -+ -+SEC("cgroup/getsockopt") -+int _getsockopt_subflow(struct bpf_sockopt *ctx) -+{ -+ struct bpf_sock *sk = ctx->sk; -+ struct mptcp_sock *msk; -+ -+ if (bpf_get_current_pid_tgid() >> 32 != pid) -+ return 1; -+ -+ if (!sk || sk->protocol != IPPROTO_MPTCP || -+ (!(ctx->level == SOL_SOCKET && ctx->optname == SO_MARK) && -+ !(ctx->level == SOL_TCP && ctx->optname == TCP_CONGESTION))) -+ return 1; -+ -+ msk = bpf_core_cast(sk, struct mptcp_sock); -+ if (msk->pm.subflows != 1) { -+ ctx->retval = -1; -+ return 1; -+ } -+ -+ if (ctx->optname == SO_MARK) -+ return _check_getsockopt_subflow_mark(msk, ctx); -+ return _check_getsockopt_subflow_cc(msk, ctx); -+} --- -2.46.0 - -From 88c9717cb6d32d931aabf69eee0d7fea30118466 Mon Sep 17 00:00:00 2001 -From: Geliang Tang -Date: Mon, 16 Sep 2024 05:52:17 +0000 -Subject: [PATCH 18/28] selftests/bpf: Add mptcp subflow subtest - -This patch adds a subtest named test_subflow to load and verify the newly -added mptcp subflow example in test_mptcp. Add a helper endpoint_init() -to add a new subflow endpoint. Add another helper ss_search() to verify the -fwmark and congestion values set by mptcp_subflow prog using setsockopts. - -Closes: https://github.com/multipath-tcp/mptcp_net-next/issues/76 -Signed-off-by: Geliang Tang -Reviewed-by: Mat Martineau ---- - .../testing/selftests/bpf/prog_tests/mptcp.c | 127 ++++++++++++++++++ - 1 file changed, 127 insertions(+) - -diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c -index d2ca32fa3b21..c76a0d8c8f93 100644 ---- a/tools/testing/selftests/bpf/prog_tests/mptcp.c -+++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c -@@ -5,12 +5,17 @@ - #include - #include - #include -+#include - #include "cgroup_helpers.h" - #include "network_helpers.h" - #include "mptcp_sock.skel.h" - #include "mptcpify.skel.h" -+#include "mptcp_subflow.skel.h" - - #define NS_TEST "mptcp_ns" -+#define ADDR_1 "10.0.1.1" -+#define ADDR_2 "10.0.1.2" -+#define PORT_1 10001 - - #ifndef IPPROTO_MPTCP - #define IPPROTO_MPTCP 262 -@@ -335,10 +340,132 @@ static void test_mptcpify(void) - close(cgroup_fd); - } - -+static int endpoint_init(char *flags) -+{ -+ SYS(fail, "ip -net %s link add veth1 type veth peer name veth2", NS_TEST); -+ SYS(fail, "ip -net %s addr add %s/24 dev veth1", NS_TEST, ADDR_1); -+ SYS(fail, "ip -net %s link set dev veth1 up", NS_TEST); -+ SYS(fail, "ip -net %s addr add %s/24 dev veth2", NS_TEST, ADDR_2); -+ SYS(fail, "ip -net %s link set dev veth2 up", NS_TEST); -+ if (SYS_NOFAIL("ip -net %s mptcp endpoint add %s %s", NS_TEST, ADDR_2, flags)) { -+ printf("'ip mptcp' not supported, skip this test.\n"); -+ test__skip(); -+ goto fail; -+ } -+ -+ return 0; -+fail: -+ return -1; -+} -+ -+static void wait_for_new_subflows(int fd) -+{ -+ socklen_t len; -+ u8 subflows; -+ int err, i; -+ -+ len = sizeof(subflows); -+ /* Wait max 1 sec for new subflows to be created */ -+ for (i = 0; i < 10; i++) { -+ err = getsockopt(fd, SOL_MPTCP, MPTCP_INFO, &subflows, &len); -+ if (!err && subflows > 0) -+ break; -+ -+ usleep(100000); /* 0.1s */ -+ } -+} -+ -+static void run_subflow(void) -+{ -+ int server_fd, client_fd, err; -+ char new[TCP_CA_NAME_MAX]; -+ char cc[TCP_CA_NAME_MAX]; -+ unsigned int mark; -+ socklen_t len; -+ -+ server_fd = start_mptcp_server(AF_INET, ADDR_1, PORT_1, 0); -+ if (!ASSERT_OK_FD(server_fd, "start_mptcp_server")) -+ return; -+ -+ client_fd = connect_to_fd(server_fd, 0); -+ if (!ASSERT_OK_FD(client_fd, "connect_to_fd")) -+ goto close_server; -+ -+ send_byte(client_fd); -+ wait_for_new_subflows(client_fd); -+ -+ len = sizeof(mark); -+ err = getsockopt(client_fd, SOL_SOCKET, SO_MARK, &mark, &len); -+ if (ASSERT_OK(err, "getsockopt(client_fd, SO_MARK)")) -+ ASSERT_EQ(mark, 0, "mark"); -+ -+ len = sizeof(new); -+ err = getsockopt(client_fd, SOL_TCP, TCP_CONGESTION, new, &len); -+ if (ASSERT_OK(err, "getsockopt(client_fd, TCP_CONGESTION)")) { -+ get_msk_ca_name(cc); -+ ASSERT_STREQ(new, cc, "cc"); -+ } -+ -+ close(client_fd); -+close_server: -+ close(server_fd); -+} -+ -+static void test_subflow(void) -+{ -+ int cgroup_fd, prog_fd, err; -+ struct mptcp_subflow *skel; -+ struct nstoken *nstoken; -+ struct bpf_link *link; -+ -+ cgroup_fd = test__join_cgroup("/mptcp_subflow"); -+ if (!ASSERT_OK_FD(cgroup_fd, "join_cgroup: mptcp_subflow")) -+ return; -+ -+ skel = mptcp_subflow__open_and_load(); -+ if (!ASSERT_OK_PTR(skel, "skel_open_load: mptcp_subflow")) -+ goto close_cgroup; -+ -+ skel->bss->pid = getpid(); -+ -+ err = mptcp_subflow__attach(skel); -+ if (!ASSERT_OK(err, "skel_attach: mptcp_subflow")) -+ goto skel_destroy; -+ -+ prog_fd = bpf_program__fd(skel->progs.mptcp_subflow); -+ err = bpf_prog_attach(prog_fd, cgroup_fd, BPF_CGROUP_SOCK_OPS, 0); -+ if (!ASSERT_OK(err, "prog_attach")) -+ goto skel_destroy; -+ -+ nstoken = create_netns(); -+ if (!ASSERT_OK_PTR(nstoken, "create_netns: mptcp_subflow")) -+ goto skel_destroy; -+ -+ if (endpoint_init("subflow") < 0) -+ goto close_netns; -+ -+ link = bpf_program__attach_cgroup(skel->progs._getsockopt_subflow, -+ cgroup_fd); -+ if (!ASSERT_OK_PTR(link, "getsockopt prog")) -+ goto close_netns; -+ -+ run_subflow(); -+ -+ bpf_link__destroy(link); -+close_netns: -+ cleanup_netns(nstoken); -+skel_destroy: -+ mptcp_subflow__destroy(skel); -+close_cgroup: -+ close(cgroup_fd); -+} -+ - void test_mptcp(void) - { - if (test__start_subtest("base")) - test_base(); - if (test__start_subtest("mptcpify")) - test_mptcpify(); -+ if (test__start_subtest("subflow")) -+ test_subflow(); - } --- -2.46.0 - -From e80fa7af7531ac183afe0d2ccd248faab335892b Mon Sep 17 00:00:00 2001 -From: Geliang Tang -Date: Mon, 16 Sep 2024 05:52:18 +0000 -Subject: [PATCH 19/28] selftests/bpf: Add bpf scheduler test - -This patch extends the MPTCP test base to support MPTCP packet scheduler -tests. Add a new test to use the default in-kernel scheduler. - -In the new helper sched_init(), add two veth net devices to simulate the -multiple addresses case. Use 'ip mptcp endpoint' command to add the new -endpoint ADDR_2 to PM netlink. Use sysctl to set net.mptcp.scheduler to -use the given sched. - -Invoke start_mptcp_server() to start the server on ADDR_1, and invoke -connect_to_fd() to connect with the server from the client. Then invoke -send_data() to send data. - -Some code in send_data() is from prog_tests/bpf_tcp_ca.c. - -Add time metrics for BPF tests to compare the performance of each -schedulers. Run prog_tests with '-v' option can print out the running -time of each test. - -Use the new helper has_bytes_sent() to check the bytes_sent filed of 'ss' -output after send_data() to make sure no data has been sent on ADDR_2. -All data has been sent on the first subflow. - -Invoke the new helper sched_cleanup() to set back net.mptcp.scheduler to -default, flush all mptcp endpoints, and delete the veth net devices. - -Signed-off-by: Geliang Tang -Reviewed-by: Mat Martineau ---- - .../testing/selftests/bpf/prog_tests/mptcp.c | 92 +++++++++++++++++++ - 1 file changed, 92 insertions(+) - -diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c -index c76a0d8c8f93..aff6986f84ac 100644 ---- a/tools/testing/selftests/bpf/prog_tests/mptcp.c -+++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c -@@ -16,6 +16,8 @@ - #define ADDR_1 "10.0.1.1" - #define ADDR_2 "10.0.1.2" - #define PORT_1 10001 -+#define WITH_DATA true -+#define WITHOUT_DATA false - - #ifndef IPPROTO_MPTCP - #define IPPROTO_MPTCP 262 -@@ -38,6 +40,9 @@ - #define TCP_CA_NAME_MAX 16 - #endif - -+static const unsigned int total_bytes = 10 * 1024 * 1024; -+static int duration; -+ - struct __mptcp_info { - __u8 mptcpi_subflows; - __u8 mptcpi_add_addr_signal; -@@ -460,6 +465,91 @@ static void test_subflow(void) - close(cgroup_fd); - } - -+static struct nstoken *sched_init(char *flags, char *sched) -+{ -+ struct nstoken *nstoken; -+ -+ nstoken = create_netns(); -+ if (!ASSERT_OK_PTR(nstoken, "create_netns")) -+ return NULL; -+ -+ if (endpoint_init("subflow") < 0) -+ goto fail; -+ -+ SYS(fail, "ip netns exec %s sysctl -qw net.mptcp.scheduler=%s", NS_TEST, sched); -+ -+ return nstoken; -+fail: -+ cleanup_netns(nstoken); -+ return NULL; -+} -+ -+static int ss_search(char *src, char *dst, char *port, char *keyword) -+{ -+ return SYS_NOFAIL("ip netns exec %s ss -enita src %s dst %s %s %d | grep -q '%s'", -+ NS_TEST, src, dst, port, PORT_1, keyword); -+} -+ -+static int has_bytes_sent(char *dst) -+{ -+ return ss_search(ADDR_1, dst, "sport", "bytes_sent:"); -+} -+ -+static void send_data_and_verify(char *sched, bool addr1, bool addr2) -+{ -+ struct timespec start, end; -+ int server_fd, client_fd; -+ unsigned int delta_ms; -+ -+ server_fd = start_mptcp_server(AF_INET, ADDR_1, PORT_1, 0); -+ if (!ASSERT_OK_FD(server_fd, "start_mptcp_server")) -+ return; -+ -+ client_fd = connect_to_fd(server_fd, 0); -+ if (!ASSERT_OK_FD(client_fd, "connect_to_fd")) -+ goto fail; -+ -+ if (clock_gettime(CLOCK_MONOTONIC, &start) < 0) -+ goto fail; -+ -+ if (!ASSERT_OK(send_recv_data(server_fd, client_fd, total_bytes), -+ "send_recv_data")) -+ goto fail; -+ -+ if (clock_gettime(CLOCK_MONOTONIC, &end) < 0) -+ goto fail; -+ -+ delta_ms = (end.tv_sec - start.tv_sec) * 1000 + (end.tv_nsec - start.tv_nsec) / 1000000; -+ printf("%s: %u ms\n", sched, delta_ms); -+ -+ if (addr1) -+ CHECK(has_bytes_sent(ADDR_1), sched, "should have bytes_sent on addr1\n"); -+ else -+ CHECK(!has_bytes_sent(ADDR_1), sched, "shouldn't have bytes_sent on addr1\n"); -+ if (addr2) -+ CHECK(has_bytes_sent(ADDR_2), sched, "should have bytes_sent on addr2\n"); -+ else -+ CHECK(!has_bytes_sent(ADDR_2), sched, "shouldn't have bytes_sent on addr2\n"); -+ -+ close(client_fd); -+fail: -+ close(server_fd); -+} -+ -+static void test_default(void) -+{ -+ struct nstoken *nstoken; -+ -+ nstoken = sched_init("subflow", "default"); -+ if (!nstoken) -+ goto fail; -+ -+ send_data_and_verify("default", WITH_DATA, WITH_DATA); -+ -+fail: -+ cleanup_netns(nstoken); -+} -+ - void test_mptcp(void) - { - if (test__start_subtest("base")) -@@ -468,4 +558,6 @@ void test_mptcp(void) - test_mptcpify(); - if (test__start_subtest("subflow")) - test_subflow(); -+ if (test__start_subtest("default")) -+ test_default(); - } --- -2.46.0 - -From 98a4df409f3862b6bb7b5f246752b05e3ccc55af Mon Sep 17 00:00:00 2001 -From: Geliang Tang -Date: Mon, 16 Sep 2024 05:52:19 +0000 -Subject: [PATCH 20/28] selftests/bpf: Add bpf_first scheduler & test - -This patch implements the simplest MPTCP scheduler, named bpf_first, -which always picks the first subflow to send data. It's a sample of -MPTCP BPF scheduler implementations. - -This patch defines MPTCP_SCHED_TEST macro, a template for all scheduler -tests. Every scheduler is identified by argument name, and use sysctl -to set net.mptcp.scheduler as "bpf_name" to use this sched. Add two -veth net devices to simulate the multiple addresses case. Use 'ip mptcp -endpoint' command to add the new endpoint ADDR2 to PM netlink. Arguments -addr1/add2 means whether the data has been sent on the first/second -subflow or not. Send data and check bytes_sent of 'ss' output after it -using send_data_and_verify(). - -Using MPTCP_SCHED_TEST macro to add a new test for this bpf_first -scheduler, the arguments "1 0" means data has been only sent on the -first subflow ADDR1. Run this test by RUN_MPTCP_TEST macro. - -Signed-off-by: Geliang Tang -Acked-by: Paolo Abeni -Reviewed-by: Mat Martineau -Reviewed-by: Matthieu Baerts (NGI0) ---- - .../testing/selftests/bpf/prog_tests/mptcp.c | 44 +++++++++++++++++++ - tools/testing/selftests/bpf/progs/mptcp_bpf.h | 7 +++ - .../selftests/bpf/progs/mptcp_bpf_first.c | 33 ++++++++++++++ - 3 files changed, 84 insertions(+) - create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_first.c - -diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c -index aff6986f84ac..ee3fab606855 100644 ---- a/tools/testing/selftests/bpf/prog_tests/mptcp.c -+++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c -@@ -11,6 +11,7 @@ - #include "mptcp_sock.skel.h" - #include "mptcpify.skel.h" - #include "mptcp_subflow.skel.h" -+#include "mptcp_bpf_first.skel.h" - - #define NS_TEST "mptcp_ns" - #define ADDR_1 "10.0.1.1" -@@ -39,6 +40,7 @@ - #ifndef TCP_CA_NAME_MAX - #define TCP_CA_NAME_MAX 16 - #endif -+#define MPTCP_SCHED_NAME_MAX 16 - - static const unsigned int total_bytes = 10 * 1024 * 1024; - static int duration; -@@ -550,6 +552,46 @@ static void test_default(void) - cleanup_netns(nstoken); - } - -+static void test_bpf_sched(struct bpf_object *obj, char *sched, -+ bool addr1, bool addr2) -+{ -+ char bpf_sched[MPTCP_SCHED_NAME_MAX] = "bpf_"; -+ struct nstoken *nstoken; -+ struct bpf_link *link; -+ struct bpf_map *map; -+ -+ if (!ASSERT_LT(strlen(bpf_sched) + strlen(sched), -+ MPTCP_SCHED_NAME_MAX, "Scheduler name too long")) -+ return; -+ -+ map = bpf_object__find_map_by_name(obj, sched); -+ link = bpf_map__attach_struct_ops(map); -+ if (CHECK(!link, sched, "attach_struct_ops: %d\n", errno)) -+ return; -+ -+ nstoken = sched_init("subflow", strcat(bpf_sched, sched)); -+ if (!nstoken) -+ goto fail; -+ -+ send_data_and_verify(sched, addr1, addr2); -+ -+fail: -+ cleanup_netns(nstoken); -+ bpf_link__destroy(link); -+} -+ -+static void test_first(void) -+{ -+ struct mptcp_bpf_first *skel; -+ -+ skel = mptcp_bpf_first__open_and_load(); -+ if (!ASSERT_OK_PTR(skel, "open_and_load: first")) -+ return; -+ -+ test_bpf_sched(skel->obj, "first", WITH_DATA, WITHOUT_DATA); -+ mptcp_bpf_first__destroy(skel); -+} -+ - void test_mptcp(void) - { - if (test__start_subtest("base")) -@@ -560,4 +602,6 @@ void test_mptcp(void) - test_subflow(); - if (test__start_subtest("default")) - test_default(); -+ if (test__start_subtest("first")) -+ test_first(); - } -diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf.h b/tools/testing/selftests/bpf/progs/mptcp_bpf.h -index 179b74c1205f..95449963c1d3 100644 ---- a/tools/testing/selftests/bpf/progs/mptcp_bpf.h -+++ b/tools/testing/selftests/bpf/progs/mptcp_bpf.h -@@ -39,4 +39,11 @@ mptcp_subflow_tcp_sock(const struct mptcp_subflow_context *subflow) - return subflow->tcp_sock; - } - -+/* ksym */ -+extern void mptcp_subflow_set_scheduled(struct mptcp_subflow_context *subflow, -+ bool scheduled) __ksym; -+ -+extern struct mptcp_subflow_context * -+bpf_mptcp_subflow_ctx_by_pos(const struct mptcp_sched_data *data, unsigned int pos) __ksym; -+ - #endif -diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c b/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c -new file mode 100644 -index 000000000000..d57399b407a7 ---- /dev/null -+++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_first.c -@@ -0,0 +1,33 @@ -+// SPDX-License-Identifier: GPL-2.0 -+/* Copyright (c) 2022, SUSE. */ -+ -+#include "mptcp_bpf.h" -+#include -+ -+char _license[] SEC("license") = "GPL"; -+ -+SEC("struct_ops") -+void BPF_PROG(mptcp_sched_first_init, struct mptcp_sock *msk) -+{ -+} -+ -+SEC("struct_ops") -+void BPF_PROG(mptcp_sched_first_release, struct mptcp_sock *msk) -+{ -+} -+ -+SEC("struct_ops") -+int BPF_PROG(bpf_first_get_subflow, struct mptcp_sock *msk, -+ struct mptcp_sched_data *data) -+{ -+ mptcp_subflow_set_scheduled(bpf_mptcp_subflow_ctx_by_pos(data, 0), true); -+ return 0; -+} -+ -+SEC(".struct_ops") -+struct mptcp_sched_ops first = { -+ .init = (void *)mptcp_sched_first_init, -+ .release = (void *)mptcp_sched_first_release, -+ .get_subflow = (void *)bpf_first_get_subflow, -+ .name = "bpf_first", -+}; --- -2.46.0 - -From 156161b367e8fea9b012e0d2da4b816670bd3a3f Mon Sep 17 00:00:00 2001 -From: Geliang Tang -Date: Mon, 16 Sep 2024 05:52:20 +0000 -Subject: [PATCH 21/28] selftests/bpf: Add bpf_bkup scheduler & test - -This patch implements the backup flag test scheduler, named bpf_bkup, -which picks the first non-backup subflow to send data. - -Using MPTCP_SCHED_TEST macro to add a new test for this bpf_bkup -scheduler, the arguments "1 0" means data has been only sent on the -first subflow ADDR1. Run this test by RUN_MPTCP_TEST macro. - -Signed-off-by: Geliang Tang -Reviewed-by: Mat Martineau -Reviewed-by: Matthieu Baerts (NGI0) ---- - .../testing/selftests/bpf/prog_tests/mptcp.c | 15 ++++++ - tools/testing/selftests/bpf/progs/mptcp_bpf.h | 3 ++ - .../selftests/bpf/progs/mptcp_bpf_bkup.c | 52 +++++++++++++++++++ - 3 files changed, 70 insertions(+) - create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c - -diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c -index ee3fab606855..4a760efc2ede 100644 ---- a/tools/testing/selftests/bpf/prog_tests/mptcp.c -+++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c -@@ -12,6 +12,7 @@ - #include "mptcpify.skel.h" - #include "mptcp_subflow.skel.h" - #include "mptcp_bpf_first.skel.h" -+#include "mptcp_bpf_bkup.skel.h" - - #define NS_TEST "mptcp_ns" - #define ADDR_1 "10.0.1.1" -@@ -592,6 +593,18 @@ static void test_first(void) - mptcp_bpf_first__destroy(skel); - } - -+static void test_bkup(void) -+{ -+ struct mptcp_bpf_bkup *skel; -+ -+ skel = mptcp_bpf_bkup__open_and_load(); -+ if (!ASSERT_OK_PTR(skel, "open_and_load: bkup")) -+ return; -+ -+ test_bpf_sched(skel->obj, "bkup", WITH_DATA, WITHOUT_DATA); -+ mptcp_bpf_bkup__destroy(skel); -+} -+ - void test_mptcp(void) - { - if (test__start_subtest("base")) -@@ -604,4 +617,6 @@ void test_mptcp(void) - test_default(); - if (test__start_subtest("first")) - test_first(); -+ if (test__start_subtest("bkup")) -+ test_bkup(); - } -diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf.h b/tools/testing/selftests/bpf/progs/mptcp_bpf.h -index 95449963c1d3..928a1e5ad8db 100644 ---- a/tools/testing/selftests/bpf/progs/mptcp_bpf.h -+++ b/tools/testing/selftests/bpf/progs/mptcp_bpf.h -@@ -4,6 +4,9 @@ - - #include "bpf_experimental.h" - -+/* mptcp helpers from include/net/mptcp.h */ -+#define MPTCP_SUBFLOWS_MAX 8 -+ - /* list helpers from include/linux/list.h */ - static inline int list_is_head(const struct list_head *list, - const struct list_head *head) -diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c b/tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c -new file mode 100644 -index 000000000000..296f0318d843 ---- /dev/null -+++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_bkup.c -@@ -0,0 +1,52 @@ -+// SPDX-License-Identifier: GPL-2.0 -+/* Copyright (c) 2022, SUSE. */ -+ -+#include "mptcp_bpf.h" -+#include -+ -+char _license[] SEC("license") = "GPL"; -+ -+SEC("struct_ops") -+void BPF_PROG(mptcp_sched_bkup_init, struct mptcp_sock *msk) -+{ -+} -+ -+SEC("struct_ops") -+void BPF_PROG(mptcp_sched_bkup_release, struct mptcp_sock *msk) -+{ -+} -+ -+SEC("struct_ops") -+int BPF_PROG(bpf_bkup_get_subflow, struct mptcp_sock *msk, -+ struct mptcp_sched_data *data) -+{ -+ int nr = -1; -+ -+ for (int i = 0; i < data->subflows && i < MPTCP_SUBFLOWS_MAX; i++) { -+ struct mptcp_subflow_context *subflow; -+ -+ subflow = bpf_mptcp_subflow_ctx_by_pos(data, i); -+ if (!subflow) -+ break; -+ -+ if (!BPF_CORE_READ_BITFIELD_PROBED(subflow, backup) || -+ !BPF_CORE_READ_BITFIELD_PROBED(subflow, request_bkup)) { -+ nr = i; -+ break; -+ } -+ } -+ -+ if (nr != -1) { -+ mptcp_subflow_set_scheduled(bpf_mptcp_subflow_ctx_by_pos(data, nr), true); -+ return -1; -+ } -+ return 0; -+} -+ -+SEC(".struct_ops") -+struct mptcp_sched_ops bkup = { -+ .init = (void *)mptcp_sched_bkup_init, -+ .release = (void *)mptcp_sched_bkup_release, -+ .get_subflow = (void *)bpf_bkup_get_subflow, -+ .name = "bpf_bkup", -+}; --- -2.46.0 - -From 23be357908c466769030c111270c4438cac3e0f3 Mon Sep 17 00:00:00 2001 -From: Geliang Tang -Date: Mon, 16 Sep 2024 05:52:21 +0000 -Subject: [PATCH 22/28] selftests/bpf: Add bpf_rr scheduler & test - -This patch implements the round-robin BPF MPTCP scheduler, named bpf_rr, -which always picks the next available subflow to send data. If no such -next subflow available, picks the first one. - -Using MPTCP_SCHED_TEST macro to add a new test for this bpf_rr -scheduler, the arguments "1 1" means data has been sent on both net -devices. Run this test by RUN_MPTCP_TEST macro. - -Signed-off-by: Geliang Tang -Reviewed-by: Mat Martineau -Reviewed-by: Matthieu Baerts (NGI0) ---- - .../testing/selftests/bpf/prog_tests/mptcp.c | 15 ++++ - .../selftests/bpf/progs/mptcp_bpf_rr.c | 78 +++++++++++++++++++ - 2 files changed, 93 insertions(+) - create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c - -diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c -index 4a760efc2ede..d4e07c24806c 100644 ---- a/tools/testing/selftests/bpf/prog_tests/mptcp.c -+++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c -@@ -13,6 +13,7 @@ - #include "mptcp_subflow.skel.h" - #include "mptcp_bpf_first.skel.h" - #include "mptcp_bpf_bkup.skel.h" -+#include "mptcp_bpf_rr.skel.h" - - #define NS_TEST "mptcp_ns" - #define ADDR_1 "10.0.1.1" -@@ -605,6 +606,18 @@ static void test_bkup(void) - mptcp_bpf_bkup__destroy(skel); - } - -+static void test_rr(void) -+{ -+ struct mptcp_bpf_rr *skel; -+ -+ skel = mptcp_bpf_rr__open_and_load(); -+ if (!ASSERT_OK_PTR(skel, "open_and_load: rr")) -+ return; -+ -+ test_bpf_sched(skel->obj, "rr", WITH_DATA, WITH_DATA); -+ mptcp_bpf_rr__destroy(skel); -+} -+ - void test_mptcp(void) - { - if (test__start_subtest("base")) -@@ -619,4 +632,6 @@ void test_mptcp(void) - test_first(); - if (test__start_subtest("bkup")) - test_bkup(); -+ if (test__start_subtest("rr")) -+ test_rr(); - } -diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c b/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c -new file mode 100644 -index 000000000000..638ea6aa63b7 ---- /dev/null -+++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_rr.c -@@ -0,0 +1,78 @@ -+// SPDX-License-Identifier: GPL-2.0 -+/* Copyright (c) 2022, SUSE. */ -+ -+#include "mptcp_bpf.h" -+#include -+ -+char _license[] SEC("license") = "GPL"; -+ -+struct mptcp_rr_storage { -+ struct sock *last_snd; -+}; -+ -+struct { -+ __uint(type, BPF_MAP_TYPE_SK_STORAGE); -+ __uint(map_flags, BPF_F_NO_PREALLOC); -+ __type(key, int); -+ __type(value, struct mptcp_rr_storage); -+} mptcp_rr_map SEC(".maps"); -+ -+SEC("struct_ops") -+void BPF_PROG(mptcp_sched_rr_init, struct mptcp_sock *msk) -+{ -+ bpf_sk_storage_get(&mptcp_rr_map, msk, 0, -+ BPF_LOCAL_STORAGE_GET_F_CREATE); -+} -+ -+SEC("struct_ops") -+void BPF_PROG(mptcp_sched_rr_release, struct mptcp_sock *msk) -+{ -+ bpf_sk_storage_delete(&mptcp_rr_map, msk); -+} -+ -+SEC("struct_ops") -+int BPF_PROG(bpf_rr_get_subflow, struct mptcp_sock *msk, -+ struct mptcp_sched_data *data) -+{ -+ struct mptcp_subflow_context *subflow; -+ struct mptcp_rr_storage *ptr; -+ struct sock *last_snd = NULL; -+ int nr = 0; -+ -+ ptr = bpf_sk_storage_get(&mptcp_rr_map, msk, 0, -+ BPF_LOCAL_STORAGE_GET_F_CREATE); -+ if (!ptr) -+ return -1; -+ -+ last_snd = ptr->last_snd; -+ -+ for (int i = 0; i < data->subflows && i < MPTCP_SUBFLOWS_MAX; i++) { -+ subflow = bpf_mptcp_subflow_ctx_by_pos(data, i); -+ if (!last_snd || !subflow) -+ break; -+ -+ if (mptcp_subflow_tcp_sock(subflow) == last_snd) { -+ if (i + 1 == MPTCP_SUBFLOWS_MAX || -+ !bpf_mptcp_subflow_ctx_by_pos(data, i + 1)) -+ break; -+ -+ nr = i + 1; -+ break; -+ } -+ } -+ -+ subflow = bpf_mptcp_subflow_ctx_by_pos(data, nr); -+ if (!subflow) -+ return -1; -+ mptcp_subflow_set_scheduled(subflow, true); -+ ptr->last_snd = mptcp_subflow_tcp_sock(subflow); -+ return 0; -+} -+ -+SEC(".struct_ops") -+struct mptcp_sched_ops rr = { -+ .init = (void *)mptcp_sched_rr_init, -+ .release = (void *)mptcp_sched_rr_release, -+ .get_subflow = (void *)bpf_rr_get_subflow, -+ .name = "bpf_rr", -+}; --- -2.46.0 - -From 24f9dc216230966e8e7301d7ac82af04d8583566 Mon Sep 17 00:00:00 2001 -From: Geliang Tang -Date: Mon, 16 Sep 2024 05:52:22 +0000 -Subject: [PATCH 23/28] selftests/bpf: Add bpf_red scheduler & test - -This patch implements the redundant BPF MPTCP scheduler, named bpf_red, -which sends all packets redundantly on all available subflows. - -Using MPTCP_SCHED_TEST macro to add a new test for this bpf_red -scheduler, the arguments "1 1" means data has been sent on both -net devices. Run this test by RUN_MPTCP_TEST macro. - -Signed-off-by: Geliang Tang -Reviewed-by: Mat Martineau -Reviewed-by: Matthieu Baerts (NGI0) ---- - .../testing/selftests/bpf/prog_tests/mptcp.c | 15 +++++++ - .../selftests/bpf/progs/mptcp_bpf_red.c | 39 +++++++++++++++++++ - 2 files changed, 54 insertions(+) - create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_red.c - -diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c -index d4e07c24806c..ede2d1ff9f6b 100644 ---- a/tools/testing/selftests/bpf/prog_tests/mptcp.c -+++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c -@@ -14,6 +14,7 @@ - #include "mptcp_bpf_first.skel.h" - #include "mptcp_bpf_bkup.skel.h" - #include "mptcp_bpf_rr.skel.h" -+#include "mptcp_bpf_red.skel.h" - - #define NS_TEST "mptcp_ns" - #define ADDR_1 "10.0.1.1" -@@ -618,6 +619,18 @@ static void test_rr(void) - mptcp_bpf_rr__destroy(skel); - } - -+static void test_red(void) -+{ -+ struct mptcp_bpf_red *skel; -+ -+ skel = mptcp_bpf_red__open_and_load(); -+ if (!ASSERT_OK_PTR(skel, "open_and_load: red")) -+ return; -+ -+ test_bpf_sched(skel->obj, "red", WITH_DATA, WITH_DATA); -+ mptcp_bpf_red__destroy(skel); -+} -+ - void test_mptcp(void) - { - if (test__start_subtest("base")) -@@ -634,4 +647,6 @@ void test_mptcp(void) - test_bkup(); - if (test__start_subtest("rr")) - test_rr(); -+ if (test__start_subtest("red")) -+ test_red(); - } -diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_red.c b/tools/testing/selftests/bpf/progs/mptcp_bpf_red.c -new file mode 100644 -index 000000000000..cc0aab732fc4 ---- /dev/null -+++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_red.c -@@ -0,0 +1,39 @@ -+// SPDX-License-Identifier: GPL-2.0 -+/* Copyright (c) 2022, SUSE. */ -+ -+#include "mptcp_bpf.h" -+#include -+ -+char _license[] SEC("license") = "GPL"; -+ -+SEC("struct_ops") -+void BPF_PROG(mptcp_sched_red_init, struct mptcp_sock *msk) -+{ -+} -+ -+SEC("struct_ops") -+void BPF_PROG(mptcp_sched_red_release, struct mptcp_sock *msk) -+{ -+} -+ -+SEC("struct_ops") -+int BPF_PROG(bpf_red_get_subflow, struct mptcp_sock *msk, -+ struct mptcp_sched_data *data) -+{ -+ for (int i = 0; i < data->subflows && i < MPTCP_SUBFLOWS_MAX; i++) { -+ if (!bpf_mptcp_subflow_ctx_by_pos(data, i)) -+ break; -+ -+ mptcp_subflow_set_scheduled(bpf_mptcp_subflow_ctx_by_pos(data, i), true); -+ } -+ -+ return 0; -+} -+ -+SEC(".struct_ops") -+struct mptcp_sched_ops red = { -+ .init = (void *)mptcp_sched_red_init, -+ .release = (void *)mptcp_sched_red_release, -+ .get_subflow = (void *)bpf_red_get_subflow, -+ .name = "bpf_red", -+}; --- -2.46.0 - -From de732279a1cfc454c4d355a7dc31bfc2766383e0 Mon Sep 17 00:00:00 2001 -From: Geliang Tang -Date: Mon, 16 Sep 2024 05:52:23 +0000 -Subject: [PATCH 24/28] bpf: Export more bpf_burst related functions - -sk_stream_memory_free() and tcp_rtx_and_write_queues_empty() are needed -to export into the BPF context for bpf_burst scheduler. But these two -functions are inline ones. So this patch added two wrappers for them, -and export the wrappers in the BPF context. - -Add more bpf_burst related functions into bpf_mptcp_sched_kfunc_set to make -sure these helpers can be accessed from the BPF context. - -Signed-off-by: Geliang Tang -Reviewed-by: Mat Martineau ---- - net/mptcp/bpf.c | 11 +++++++++++ - net/mptcp/protocol.c | 4 ++-- - net/mptcp/protocol.h | 3 +++ - 3 files changed, 16 insertions(+), 2 deletions(-) - -diff --git a/net/mptcp/bpf.c b/net/mptcp/bpf.c -index 2c0fb9bddb9d..6414824402e6 100644 ---- a/net/mptcp/bpf.c -+++ b/net/mptcp/bpf.c -@@ -213,11 +213,22 @@ bpf_mptcp_subflow_ctx_by_pos(const struct mptcp_sched_data *data, unsigned int p - return data->contexts[pos]; - } - -+__bpf_kfunc bool bpf_mptcp_subflow_queues_empty(struct sock *sk) -+{ -+ return tcp_rtx_queue_empty(sk); -+} -+ - __diag_pop(); - - BTF_KFUNCS_START(bpf_mptcp_sched_kfunc_ids) - BTF_ID_FLAGS(func, mptcp_subflow_set_scheduled) - BTF_ID_FLAGS(func, bpf_mptcp_subflow_ctx_by_pos) -+BTF_ID_FLAGS(func, mptcp_subflow_active) -+BTF_ID_FLAGS(func, mptcp_set_timeout) -+BTF_ID_FLAGS(func, mptcp_wnd_end) -+BTF_ID_FLAGS(func, tcp_stream_memory_free) -+BTF_ID_FLAGS(func, bpf_mptcp_subflow_queues_empty) -+BTF_ID_FLAGS(func, mptcp_pm_subflow_chk_stale) - BTF_KFUNCS_END(bpf_mptcp_sched_kfunc_ids) - - static const struct btf_kfunc_id_set bpf_mptcp_sched_kfunc_set = { -diff --git a/net/mptcp/protocol.c b/net/mptcp/protocol.c -index 7cc8d81ee605..3b837765c84b 100644 ---- a/net/mptcp/protocol.c -+++ b/net/mptcp/protocol.c -@@ -50,7 +50,7 @@ DEFINE_PER_CPU(struct mptcp_delegated_action, mptcp_delegated_actions); - static struct net_device mptcp_napi_dev; - - /* Returns end sequence number of the receiver's advertised window */ --static u64 mptcp_wnd_end(const struct mptcp_sock *msk) -+u64 mptcp_wnd_end(const struct mptcp_sock *msk) - { - return READ_ONCE(msk->wnd_end); - } -@@ -489,7 +489,7 @@ static long mptcp_timeout_from_subflow(const struct mptcp_subflow_context *subfl - inet_csk(ssk)->icsk_timeout - jiffies : 0; - } - --static void mptcp_set_timeout(struct sock *sk) -+void mptcp_set_timeout(struct sock *sk) - { - struct mptcp_subflow_context *subflow; - long tout = 0; -diff --git a/net/mptcp/protocol.h b/net/mptcp/protocol.h -index a1d06e7e3544..c3942416fa3a 100644 ---- a/net/mptcp/protocol.h -+++ b/net/mptcp/protocol.h -@@ -719,6 +719,9 @@ void __mptcp_subflow_send_ack(struct sock *ssk); - void mptcp_subflow_reset(struct sock *ssk); - void mptcp_subflow_queue_clean(struct sock *sk, struct sock *ssk); - void mptcp_sock_graft(struct sock *sk, struct socket *parent); -+u64 mptcp_wnd_end(const struct mptcp_sock *msk); -+void mptcp_set_timeout(struct sock *sk); -+bool bpf_mptcp_subflow_queues_empty(struct sock *sk); - struct mptcp_subflow_context * - bpf_mptcp_subflow_ctx_by_pos(const struct mptcp_sched_data *data, unsigned int pos); - struct sock *__mptcp_nmpc_sk(struct mptcp_sock *msk); --- -2.46.0 - -From 9f1d0166bff9923c5889a0db70e189f147efee50 Mon Sep 17 00:00:00 2001 -From: Geliang Tang -Date: Mon, 16 Sep 2024 05:52:24 +0000 -Subject: [PATCH 25/28] selftests/bpf: Add bpf_burst scheduler & test - -This patch implements the burst BPF MPTCP scheduler, named bpf_burst, -which is the default scheduler in protocol.c. bpf_burst_get_send() uses -the same logic as mptcp_subflow_get_send() and bpf_burst_get_retrans -uses the same logic as mptcp_subflow_get_retrans(). - -Using MPTCP_SCHED_TEST macro to add a new test for this bpf_burst -scheduler, the arguments "1 1" means data has been sent on both net -devices. Run this test by RUN_MPTCP_TEST macro. - -Signed-off-by: Geliang Tang -Reviewed-by: Mat Martineau -Reviewed-by: Matthieu Baerts (NGI0) ---- - .../testing/selftests/bpf/prog_tests/mptcp.c | 15 ++ - .../selftests/bpf/progs/mptcp_bpf_burst.c | 207 ++++++++++++++++++ - 2 files changed, 222 insertions(+) - create mode 100644 tools/testing/selftests/bpf/progs/mptcp_bpf_burst.c - -diff --git a/tools/testing/selftests/bpf/prog_tests/mptcp.c b/tools/testing/selftests/bpf/prog_tests/mptcp.c -index ede2d1ff9f6b..a3e68bc6afa3 100644 ---- a/tools/testing/selftests/bpf/prog_tests/mptcp.c -+++ b/tools/testing/selftests/bpf/prog_tests/mptcp.c -@@ -15,6 +15,7 @@ - #include "mptcp_bpf_bkup.skel.h" - #include "mptcp_bpf_rr.skel.h" - #include "mptcp_bpf_red.skel.h" -+#include "mptcp_bpf_burst.skel.h" - - #define NS_TEST "mptcp_ns" - #define ADDR_1 "10.0.1.1" -@@ -631,6 +632,18 @@ static void test_red(void) - mptcp_bpf_red__destroy(skel); - } - -+static void test_burst(void) -+{ -+ struct mptcp_bpf_burst *skel; -+ -+ skel = mptcp_bpf_burst__open_and_load(); -+ if (!ASSERT_OK_PTR(skel, "open_and_load: burst")) -+ return; -+ -+ test_bpf_sched(skel->obj, "burst", WITH_DATA, WITH_DATA); -+ mptcp_bpf_burst__destroy(skel); -+} -+ - void test_mptcp(void) - { - if (test__start_subtest("base")) -@@ -649,4 +662,6 @@ void test_mptcp(void) - test_rr(); - if (test__start_subtest("red")) - test_red(); -+ if (test__start_subtest("burst")) -+ test_burst(); - } -diff --git a/tools/testing/selftests/bpf/progs/mptcp_bpf_burst.c b/tools/testing/selftests/bpf/progs/mptcp_bpf_burst.c -new file mode 100644 -index 000000000000..eb21119aa8f7 ---- /dev/null -+++ b/tools/testing/selftests/bpf/progs/mptcp_bpf_burst.c -@@ -0,0 +1,207 @@ -+// SPDX-License-Identifier: GPL-2.0 -+/* Copyright (c) 2023, SUSE. */ -+ -+#include "mptcp_bpf.h" -+#include -+#include -+ -+char _license[] SEC("license") = "GPL"; -+ -+#define MPTCP_SEND_BURST_SIZE 65428 -+ -+#define min(a, b) ((a) < (b) ? (a) : (b)) -+ -+struct bpf_subflow_send_info { -+ __u8 subflow_id; -+ __u64 linger_time; -+}; -+ -+extern bool mptcp_subflow_active(struct mptcp_subflow_context *subflow) __ksym; -+extern void mptcp_set_timeout(struct sock *sk) __ksym; -+extern __u64 mptcp_wnd_end(const struct mptcp_sock *msk) __ksym; -+extern bool tcp_stream_memory_free(const struct sock *sk, int wake) __ksym; -+extern bool bpf_mptcp_subflow_queues_empty(struct sock *sk) __ksym; -+extern void mptcp_pm_subflow_chk_stale(const struct mptcp_sock *msk, struct sock *ssk) __ksym; -+ -+#define SSK_MODE_ACTIVE 0 -+#define SSK_MODE_BACKUP 1 -+#define SSK_MODE_MAX 2 -+ -+static __always_inline __u64 div_u64(__u64 dividend, __u32 divisor) -+{ -+ return dividend / divisor; -+} -+ -+static __always_inline bool tcp_write_queue_empty(struct sock *sk) -+{ -+ const struct tcp_sock *tp = bpf_skc_to_tcp_sock(sk); -+ -+ return tp ? tp->write_seq == tp->snd_nxt : true; -+} -+ -+static __always_inline bool tcp_rtx_and_write_queues_empty(struct sock *sk) -+{ -+ return bpf_mptcp_subflow_queues_empty(sk) && tcp_write_queue_empty(sk); -+} -+ -+static __always_inline bool __sk_stream_memory_free(const struct sock *sk, int wake) -+{ -+ if (sk->sk_wmem_queued >= sk->sk_sndbuf) -+ return false; -+ -+ return tcp_stream_memory_free(sk, wake); -+} -+ -+static __always_inline bool sk_stream_memory_free(const struct sock *sk) -+{ -+ return __sk_stream_memory_free(sk, 0); -+} -+ -+SEC("struct_ops") -+void BPF_PROG(mptcp_sched_burst_init, struct mptcp_sock *msk) -+{ -+} -+ -+SEC("struct_ops") -+void BPF_PROG(mptcp_sched_burst_release, struct mptcp_sock *msk) -+{ -+} -+ -+static int bpf_burst_get_send(struct mptcp_sock *msk, -+ struct mptcp_sched_data *data) -+{ -+ struct bpf_subflow_send_info send_info[SSK_MODE_MAX]; -+ struct mptcp_subflow_context *subflow; -+ struct sock *sk = (struct sock *)msk; -+ __u32 pace, burst, wmem; -+ int i, nr_active = 0; -+ __u64 linger_time; -+ struct sock *ssk; -+ -+ /* pick the subflow with the lower wmem/wspace ratio */ -+ for (i = 0; i < SSK_MODE_MAX; ++i) { -+ send_info[i].subflow_id = MPTCP_SUBFLOWS_MAX; -+ send_info[i].linger_time = -1; -+ } -+ -+ for (i = 0; i < data->subflows && i < MPTCP_SUBFLOWS_MAX; i++) { -+ bool backup; -+ -+ subflow = bpf_mptcp_subflow_ctx_by_pos(data, i); -+ if (!subflow) -+ break; -+ -+ backup = subflow->backup || subflow->request_bkup; -+ -+ ssk = mptcp_subflow_tcp_sock(subflow); -+ if (!mptcp_subflow_active(subflow)) -+ continue; -+ -+ nr_active += !backup; -+ pace = subflow->avg_pacing_rate; -+ if (!pace) { -+ /* init pacing rate from socket */ -+ subflow->avg_pacing_rate = ssk->sk_pacing_rate; -+ pace = subflow->avg_pacing_rate; -+ if (!pace) -+ continue; -+ } -+ -+ linger_time = div_u64((__u64)ssk->sk_wmem_queued << 32, pace); -+ if (linger_time < send_info[backup].linger_time) { -+ send_info[backup].subflow_id = i; -+ send_info[backup].linger_time = linger_time; -+ } -+ } -+ mptcp_set_timeout(sk); -+ -+ /* pick the best backup if no other subflow is active */ -+ if (!nr_active) -+ send_info[SSK_MODE_ACTIVE].subflow_id = send_info[SSK_MODE_BACKUP].subflow_id; -+ -+ subflow = bpf_mptcp_subflow_ctx_by_pos(data, send_info[SSK_MODE_ACTIVE].subflow_id); -+ if (!subflow) -+ return -1; -+ ssk = mptcp_subflow_tcp_sock(subflow); -+ if (!ssk || !sk_stream_memory_free(ssk)) -+ return -1; -+ -+ burst = min(MPTCP_SEND_BURST_SIZE, mptcp_wnd_end(msk) - msk->snd_nxt); -+ wmem = ssk->sk_wmem_queued; -+ if (!burst) -+ goto out; -+ -+ subflow->avg_pacing_rate = div_u64((__u64)subflow->avg_pacing_rate * wmem + -+ ssk->sk_pacing_rate * burst, -+ burst + wmem); -+ msk->snd_burst = burst; -+ -+out: -+ mptcp_subflow_set_scheduled(subflow, true); -+ return 0; -+} -+ -+static int bpf_burst_get_retrans(struct mptcp_sock *msk, -+ struct mptcp_sched_data *data) -+{ -+ int backup = MPTCP_SUBFLOWS_MAX, pick = MPTCP_SUBFLOWS_MAX, subflow_id; -+ struct mptcp_subflow_context *subflow; -+ int min_stale_count = INT_MAX; -+ struct sock *ssk; -+ -+ for (int i = 0; i < data->subflows && i < MPTCP_SUBFLOWS_MAX; i++) { -+ subflow = bpf_mptcp_subflow_ctx_by_pos(data, i); -+ if (!subflow) -+ break; -+ -+ if (!mptcp_subflow_active(subflow)) -+ continue; -+ -+ ssk = mptcp_subflow_tcp_sock(subflow); -+ /* still data outstanding at TCP level? skip this */ -+ if (!tcp_rtx_and_write_queues_empty(ssk)) { -+ mptcp_pm_subflow_chk_stale(msk, ssk); -+ min_stale_count = min(min_stale_count, subflow->stale_count); -+ continue; -+ } -+ -+ if (subflow->backup || subflow->request_bkup) { -+ if (backup == MPTCP_SUBFLOWS_MAX) -+ backup = i; -+ continue; -+ } -+ -+ if (pick == MPTCP_SUBFLOWS_MAX) -+ pick = i; -+ } -+ -+ if (pick < MPTCP_SUBFLOWS_MAX) { -+ subflow_id = pick; -+ goto out; -+ } -+ subflow_id = min_stale_count > 1 ? backup : MPTCP_SUBFLOWS_MAX; -+ -+out: -+ subflow = bpf_mptcp_subflow_ctx_by_pos(data, subflow_id); -+ if (!subflow) -+ return -1; -+ mptcp_subflow_set_scheduled(subflow, true); -+ return 0; -+} -+ -+SEC("struct_ops") -+int BPF_PROG(bpf_burst_get_subflow, struct mptcp_sock *msk, -+ struct mptcp_sched_data *data) -+{ -+ if (data->reinject) -+ return bpf_burst_get_retrans(msk, data); -+ return bpf_burst_get_send(msk, data); -+} -+ -+SEC(".struct_ops") -+struct mptcp_sched_ops burst = { -+ .init = (void *)mptcp_sched_burst_init, -+ .release = (void *)mptcp_sched_burst_release, -+ .get_subflow = (void *)bpf_burst_get_subflow, -+ .name = "bpf_burst", -+}; --- -2.46.0 - diff --git a/6.11/target/linux/generic/pending-6.11/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch b/6.11/target/linux/generic/pending-6.11/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch deleted file mode 100644 index 0844fcd6..00000000 --- a/6.11/target/linux/generic/pending-6.11/100-compiler.h-only-include-asm-rwonce.h-for-kernel-code.patch +++ /dev/null @@ -1,29 +0,0 @@ -From: Felix Fietkau -Date: Thu, 22 Oct 2020 22:00:03 +0200 -Subject: [PATCH] compiler.h: only include asm/rwonce.h for kernel code - -This header file is not in uapi, which makes any user space code that includes -linux/compiler.h to fail with the error 'asm/rwonce.h: No such file or directory' - -Fixes: e506ea451254 ("compiler.h: Split {READ,WRITE}_ONCE definitions out into rwonce.h") -Signed-off-by: Felix Fietkau ---- - ---- a/include/linux/compiler.h -+++ b/include/linux/compiler.h -@@ -202,6 +202,8 @@ void ftrace_likely_update(struct ftrace_ - __v; \ - }) - -+#include -+ - #endif /* __KERNEL__ */ - - /* -@@ -243,6 +245,4 @@ static inline void *offset_to_ptr(const - */ - #define prevent_tail_call_optimization() mb() - --#include -- - #endif /* __LINUX_COMPILER_H */ diff --git a/6.11/target/linux/generic/pending-6.11/102-MIPS-only-process-negative-stack-offsets-on-stack-tr.patch b/6.11/target/linux/generic/pending-6.11/102-MIPS-only-process-negative-stack-offsets-on-stack-tr.patch deleted file mode 100644 index d79d03de..00000000 --- a/6.11/target/linux/generic/pending-6.11/102-MIPS-only-process-negative-stack-offsets-on-stack-tr.patch +++ /dev/null @@ -1,57 +0,0 @@ -From: Felix Fietkau -Date: Wed, 18 Apr 2018 10:50:05 +0200 -Subject: [PATCH] MIPS: only process negative stack offsets on stack traces - -Fixes endless back traces in cases where the compiler emits a stack -pointer increase in a branch delay slot (probably for some form of -function return). - -[ 3.475442] BUG: MAX_STACK_TRACE_ENTRIES too low! -[ 3.480070] turning off the locking correctness validator. -[ 3.485521] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.14.34 #0 -[ 3.491475] Stack : 00000000 00000000 00000000 00000000 80e0fce2 00000034 00000000 00000000 -[ 3.499764] 87c3838c 80696377 8061047c 00000000 00000001 00000001 87c2d850 6534689f -[ 3.508059] 00000000 00000000 80e10000 00000000 00000000 000000cf 0000000f 00000000 -[ 3.516353] 00000000 806a0000 00076891 00000000 00000000 00000000 ffffffff 00000000 -[ 3.524648] 806c0000 00000004 80e10000 806a0000 00000003 80690000 00000000 80700000 -[ 3.532942] ... -[ 3.535362] Call Trace: -[ 3.537818] [<80010a48>] show_stack+0x58/0x100 -[ 3.542207] [<804c2f78>] dump_stack+0xe8/0x170 -[ 3.546613] [<80079f90>] save_trace+0xf0/0x110 -[ 3.551010] [<8007b1ec>] mark_lock+0x33c/0x78c -[ 3.555413] [<8007bf48>] __lock_acquire+0x2ac/0x1a08 -[ 3.560337] [<8007de60>] lock_acquire+0x64/0x8c -[ 3.564846] [<804e1570>] _raw_spin_lock_irqsave+0x54/0x78 -[ 3.570186] [<801b618c>] kernfs_notify+0x94/0xac -[ 3.574770] [<801b7b10>] sysfs_notify+0x74/0xa0 -[ 3.579257] [<801b618c>] kernfs_notify+0x94/0xac -[ 3.583839] [<801b7b10>] sysfs_notify+0x74/0xa0 -[ 3.588329] [<801b618c>] kernfs_notify+0x94/0xac -[ 3.592911] [<801b7b10>] sysfs_notify+0x74/0xa0 -[ 3.597401] [<801b618c>] kernfs_notify+0x94/0xac -[ 3.601983] [<801b7b10>] sysfs_notify+0x74/0xa0 -[ 3.606473] [<801b618c>] kernfs_notify+0x94/0xac -[ 3.611055] [<801b7b10>] sysfs_notify+0x74/0xa0 -[ 3.615545] [<801b618c>] kernfs_notify+0x94/0xac -[ 3.620125] [<801b7b10>] sysfs_notify+0x74/0xa0 -[ 3.624619] [<801b618c>] kernfs_notify+0x94/0xac -[ 3.629197] [<801b7b10>] sysfs_notify+0x74/0xa0 -[ 3.633691] [<801b618c>] kernfs_notify+0x94/0xac -[ 3.638269] [<801b7b10>] sysfs_notify+0x74/0xa0 -[ 3.642763] [<801b618c>] kernfs_notify+0x94/0xac - -Signed-off-by: Felix Fietkau ---- - ---- a/arch/mips/kernel/process.c -+++ b/arch/mips/kernel/process.c -@@ -395,6 +395,8 @@ static inline int is_sp_move_ins(union m - - if (ip->i_format.opcode == addiu_op || - ip->i_format.opcode == daddiu_op) { -+ if (ip->i_format.simmediate > 0) -+ return 0; - *frame_size = -ip->i_format.simmediate; - return 1; - } diff --git a/6.11/target/linux/generic/pending-6.11/111-watchdog-max63xx_wdt-Add-support-for-specifying-WDI-.patch b/6.11/target/linux/generic/pending-6.11/111-watchdog-max63xx_wdt-Add-support-for-specifying-WDI-.patch deleted file mode 100644 index 9dd90eec..00000000 --- a/6.11/target/linux/generic/pending-6.11/111-watchdog-max63xx_wdt-Add-support-for-specifying-WDI-.patch +++ /dev/null @@ -1,75 +0,0 @@ -From bd1b9f66d5134e518419f4c4dacf1884c1616983 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Thu, 28 Apr 2022 11:13:23 +0200 -Subject: [PATCH] watchdog: max63xx_wdt: Add support for specifying WDI logic - via GPIO -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -On some boards is WDI logic of max6370 chip connected via GPIO. -So extend max63xx_wdt driver to allow specifying WDI logic via GPIO. - -Signed-off-by: Pali Rohár ---- - drivers/watchdog/max63xx_wdt.c | 24 ++++++++++++++++++++++++ - 1 file changed, 24 insertions(+) - ---- a/drivers/watchdog/max63xx_wdt.c -+++ b/drivers/watchdog/max63xx_wdt.c -@@ -24,6 +24,7 @@ - #include - #include - #include -+#include - - #define DEFAULT_HEARTBEAT 60 - #define MAX_HEARTBEAT 60 -@@ -50,6 +51,9 @@ struct max63xx_wdt { - void __iomem *base; - spinlock_t lock; - -+ /* GPIOs */ -+ struct gpio_desc *gpio_wdi; -+ - /* WDI and WSET bits write access routines */ - void (*ping)(struct max63xx_wdt *wdt); - void (*set)(struct max63xx_wdt *wdt, u8 set); -@@ -155,6 +159,17 @@ static const struct watchdog_info max63x - .identity = "max63xx Watchdog", - }; - -+static void max63xx_gpio_ping(struct max63xx_wdt *wdt) -+{ -+ spin_lock(&wdt->lock); -+ -+ gpiod_set_value(wdt->gpio_wdi, 1); -+ udelay(1); -+ gpiod_set_value(wdt->gpio_wdi, 0); -+ -+ spin_unlock(&wdt->lock); -+} -+ - static void max63xx_mmap_ping(struct max63xx_wdt *wdt) - { - u8 val; -@@ -222,10 +237,19 @@ static int max63xx_wdt_probe(struct plat - return -EINVAL; - } - -+ wdt->gpio_wdi = devm_gpiod_get(dev, NULL, GPIOD_FLAGS_BIT_DIR_OUT); -+ if (IS_ERR(wdt->gpio_wdi) && PTR_ERR(wdt->gpio_wdi) != -ENOENT) -+ return dev_err_probe(dev, PTR_ERR(wdt->gpio_wdi), -+ "unable to request gpio: %ld\n", -+ PTR_ERR(wdt->gpio_wdi)); -+ - err = max63xx_mmap_init(pdev, wdt); - if (err) - return err; - -+ if (!IS_ERR(wdt->gpio_wdi)) -+ wdt->ping = max63xx_gpio_ping; -+ - platform_set_drvdata(pdev, &wdt->wdd); - watchdog_set_drvdata(&wdt->wdd, wdt); - diff --git a/6.11/target/linux/generic/pending-6.11/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch b/6.11/target/linux/generic/pending-6.11/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch deleted file mode 100644 index 099b07ef..00000000 --- a/6.11/target/linux/generic/pending-6.11/120-Fix-alloc_node_mem_map-with-ARCH_PFN_OFFSET-calcu.patch +++ /dev/null @@ -1,82 +0,0 @@ -From: Tobias Wolf -Subject: mm: Fix alloc_node_mem_map with ARCH_PFN_OFFSET calculation - -An rt288x (ralink) based router (Belkin F5D8235 v1) does not boot with any -kernel beyond version 4.3 resulting in: - -BUG: Bad page state in process swapper pfn:086ac - -bisect resulted in: - -a1c34a3bf00af2cede839879502e12dc68491ad5 is the first bad commit -commit a1c34a3bf00af2cede839879502e12dc68491ad5 -Author: Laura Abbott -Date: Thu Nov 5 18:48:46 2015 -0800 - - mm: Don't offset memmap for flatmem - - Srinivas Kandagatla reported bad page messages when trying to remove the - bottom 2MB on an ARM based IFC6410 board - - BUG: Bad page state in process swapper pfn:fffa8 - page:ef7fb500 count:0 mapcount:0 mapping: (null) index:0x0 - flags: 0x96640253(locked|error|dirty|active|arch_1|reclaim|mlocked) - page dumped because: PAGE_FLAGS_CHECK_AT_FREE flag(s) set - bad because of flags: - flags: 0x200041(locked|active|mlocked) - Modules linked in: - CPU: 0 PID: 0 Comm: swapper Not tainted 3.19.0-rc3-00007-g412f9ba-dirty -#816 - Hardware name: Qualcomm (Flattened Device Tree) - unwind_backtrace - show_stack - dump_stack - bad_page - free_pages_prepare - free_hot_cold_page - __free_pages - free_highmem_page - mem_init - start_kernel - Disabling lock debugging due to kernel taint - [...] -:040000 040000 2de013c372345fd471cd58f0553c9b38b0ef1cc4 -0a8156f848733dfa21e16c196dfb6c0a76290709 M mm - -This fix for ARM does not account ARCH_PFN_OFFSET for mem_map as later used by -page_to_pfn anymore. - -The following output was generated with two hacked in printk statements: - -printk("before %p vs. %p or %p\n", mem_map, mem_map - offset, mem_map - -(pgdat->node_start_pfn - ARCH_PFN_OFFSET)); - if (page_to_pfn(mem_map) != pgdat->node_start_pfn) - mem_map -= offset + (pgdat->node_start_pfn - ARCH_PFN_OFFSET); -printk("after %p\n", mem_map); - -Output: - -[ 0.000000] before 8861b280 vs. 8861b280 or 8851b280 -[ 0.000000] after 8851b280 - -As seen in the first line mem_map with subtraction of offset does not equal the -mem_map after subtraction of ARCH_PFN_OFFSET. - -After adding the offset of ARCH_PFN_OFFSET as well to mem_map as the -previously calculated offset is zero for the named platform it is able to boot -4.4 and 4.9-rc7 again. - -Signed-off-by: Tobias Wolf ---- - ---- a/mm/mm_init.c -+++ b/mm/mm_init.c -@@ -1673,7 +1673,7 @@ static void __init alloc_node_mem_map(st - if (pgdat == NODE_DATA(0)) { - mem_map = NODE_DATA(0)->node_mem_map; - if (page_to_pfn(mem_map) != pgdat->node_start_pfn) -- mem_map -= offset; -+ mem_map -= offset + (pgdat->node_start_pfn - ARCH_PFN_OFFSET); - } - #endif - } diff --git a/6.11/target/linux/generic/pending-6.11/140-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch b/6.11/target/linux/generic/pending-6.11/140-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch deleted file mode 100644 index b82f3d80..00000000 --- a/6.11/target/linux/generic/pending-6.11/140-jffs2-use-.rename2-and-add-RENAME_WHITEOUT-support.patch +++ /dev/null @@ -1,81 +0,0 @@ -From: Felix Fietkau -Subject: jffs2: use .rename2 and add RENAME_WHITEOUT support - -It is required for renames on overlayfs - -Signed-off-by: Felix Fietkau ---- - ---- a/fs/jffs2/dir.c -+++ b/fs/jffs2/dir.c -@@ -617,8 +617,8 @@ static int jffs2_rmdir (struct inode *di - return ret; - } - --static int jffs2_mknod (struct mnt_idmap *idmap, struct inode *dir_i, -- struct dentry *dentry, umode_t mode, dev_t rdev) -+static int __jffs2_mknod (struct mnt_idmap *idmap, struct inode *dir_i, -+ struct dentry *dentry, umode_t mode, dev_t rdev, bool whiteout) - { - struct jffs2_inode_info *f, *dir_f; - struct jffs2_sb_info *c; -@@ -758,7 +758,11 @@ static int jffs2_mknod (struct mnt_idmap - mutex_unlock(&dir_f->sem); - jffs2_complete_reservation(c); - -- d_instantiate_new(dentry, inode); -+ if (!whiteout) -+ d_instantiate_new(dentry, inode); -+ else -+ unlock_new_inode(inode); -+ - return 0; - - fail: -@@ -766,6 +770,19 @@ static int jffs2_mknod (struct mnt_idmap - return ret; - } - -+static int jffs2_mknod (struct mnt_idmap *idmap, struct inode *dir_i, -+ struct dentry *dentry, umode_t mode, dev_t rdev) -+{ -+ return __jffs2_mknod(idmap, dir_i, dentry, mode, rdev, false); -+} -+ -+static int jffs2_whiteout (struct mnt_idmap *idmap, struct inode *old_dir, -+ struct dentry *old_dentry) -+{ -+ return __jffs2_mknod(idmap, old_dir, old_dentry, S_IFCHR | WHITEOUT_MODE, -+ WHITEOUT_DEV, true); -+} -+ - static int jffs2_rename (struct mnt_idmap *idmap, - struct inode *old_dir_i, struct dentry *old_dentry, - struct inode *new_dir_i, struct dentry *new_dentry, -@@ -777,7 +794,7 @@ static int jffs2_rename (struct mnt_idma - uint8_t type; - uint32_t now; - -- if (flags & ~RENAME_NOREPLACE) -+ if (flags & ~(RENAME_NOREPLACE|RENAME_WHITEOUT)) - return -EINVAL; - - /* The VFS will check for us and prevent trying to rename a -@@ -843,9 +860,14 @@ static int jffs2_rename (struct mnt_idma - if (d_is_dir(old_dentry) && !victim_f) - inc_nlink(new_dir_i); - -- /* Unlink the original */ -- ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i), -- old_dentry->d_name.name, old_dentry->d_name.len, NULL, now); -+ if (flags & RENAME_WHITEOUT) -+ /* Replace with whiteout */ -+ ret = jffs2_whiteout(idmap, old_dir_i, old_dentry); -+ else -+ /* Unlink the original */ -+ ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i), -+ old_dentry->d_name.name, -+ old_dentry->d_name.len, NULL, now); - - /* We don't touch inode->i_nlink */ - diff --git a/6.11/target/linux/generic/pending-6.11/141-jffs2-add-RENAME_EXCHANGE-support.patch b/6.11/target/linux/generic/pending-6.11/141-jffs2-add-RENAME_EXCHANGE-support.patch deleted file mode 100644 index c3a528ec..00000000 --- a/6.11/target/linux/generic/pending-6.11/141-jffs2-add-RENAME_EXCHANGE-support.patch +++ /dev/null @@ -1,73 +0,0 @@ -From: Felix Fietkau -Subject: jffs2: add RENAME_EXCHANGE support - -Signed-off-by: Felix Fietkau ---- - ---- a/fs/jffs2/dir.c -+++ b/fs/jffs2/dir.c -@@ -791,18 +791,31 @@ static int jffs2_rename (struct mnt_idma - int ret; - struct jffs2_sb_info *c = JFFS2_SB_INFO(old_dir_i->i_sb); - struct jffs2_inode_info *victim_f = NULL; -+ struct inode *fst_inode = d_inode(old_dentry); -+ struct inode *snd_inode = d_inode(new_dentry); - uint8_t type; - uint32_t now; - -- if (flags & ~(RENAME_NOREPLACE|RENAME_WHITEOUT)) -+ if (flags & ~(RENAME_NOREPLACE|RENAME_WHITEOUT|RENAME_EXCHANGE)) - return -EINVAL; - -+ if ((flags & RENAME_EXCHANGE) && (old_dir_i != new_dir_i)) { -+ if (S_ISDIR(fst_inode->i_mode) && !S_ISDIR(snd_inode->i_mode)) { -+ inc_nlink(new_dir_i); -+ drop_nlink(old_dir_i); -+ } -+ else if (!S_ISDIR(fst_inode->i_mode) && S_ISDIR(snd_inode->i_mode)) { -+ drop_nlink(new_dir_i); -+ inc_nlink(old_dir_i); -+ } -+ } -+ - /* The VFS will check for us and prevent trying to rename a - * file over a directory and vice versa, but if it's a directory, - * the VFS can't check whether the victim is empty. The filesystem - * needs to do that for itself. - */ -- if (d_really_is_positive(new_dentry)) { -+ if (d_really_is_positive(new_dentry) && !(flags & RENAME_EXCHANGE)) { - victim_f = JFFS2_INODE_INFO(d_inode(new_dentry)); - if (d_is_dir(new_dentry)) { - struct jffs2_full_dirent *fd; -@@ -837,7 +850,7 @@ static int jffs2_rename (struct mnt_idma - if (ret) - return ret; - -- if (victim_f) { -+ if (victim_f && !(flags & RENAME_EXCHANGE)) { - /* There was a victim. Kill it off nicely */ - if (d_is_dir(new_dentry)) - clear_nlink(d_inode(new_dentry)); -@@ -863,6 +876,12 @@ static int jffs2_rename (struct mnt_idma - if (flags & RENAME_WHITEOUT) - /* Replace with whiteout */ - ret = jffs2_whiteout(idmap, old_dir_i, old_dentry); -+ else if (flags & RENAME_EXCHANGE) -+ /* Replace the original */ -+ ret = jffs2_do_link(c, JFFS2_INODE_INFO(old_dir_i), -+ d_inode(new_dentry)->i_ino, type, -+ old_dentry->d_name.name, old_dentry->d_name.len, -+ now); - else - /* Unlink the original */ - ret = jffs2_do_unlink(c, JFFS2_INODE_INFO(old_dir_i), -@@ -895,7 +914,7 @@ static int jffs2_rename (struct mnt_idma - return ret; - } - -- if (d_is_dir(old_dentry)) -+ if (d_is_dir(old_dentry) && !(flags & RENAME_EXCHANGE)) - drop_nlink(old_dir_i); - - old_dir_i->i_mtime = inode_set_ctime_to_ts(old_dir_i, ITIME(now)); diff --git a/6.11/target/linux/generic/pending-6.11/142-jffs2-add-splice-ops.patch b/6.11/target/linux/generic/pending-6.11/142-jffs2-add-splice-ops.patch deleted file mode 100644 index ea57158c..00000000 --- a/6.11/target/linux/generic/pending-6.11/142-jffs2-add-splice-ops.patch +++ /dev/null @@ -1,20 +0,0 @@ -From: Felix Fietkau -Subject: jffs2: add splice ops - -Add splice_read using generic_file_splice_read. -Add splice_write using iter_file_splice_write - -Signed-off-by: Felix Fietkau ---- - ---- a/fs/jffs2/file.c -+++ b/fs/jffs2/file.c -@@ -53,6 +53,8 @@ const struct file_operations jffs2_file_ - .open = generic_file_open, - .read_iter = generic_file_read_iter, - .write_iter = generic_file_write_iter, -+ .splice_read = filemap_splice_read, -+ .splice_write = iter_file_splice_write, - .unlocked_ioctl=jffs2_ioctl, - .mmap = generic_file_readonly_mmap, - .fsync = jffs2_fsync, diff --git a/6.11/target/linux/generic/pending-6.11/150-bridge_allow_receiption_on_disabled_port.patch b/6.11/target/linux/generic/pending-6.11/150-bridge_allow_receiption_on_disabled_port.patch deleted file mode 100644 index d8fd9cdf..00000000 --- a/6.11/target/linux/generic/pending-6.11/150-bridge_allow_receiption_on_disabled_port.patch +++ /dev/null @@ -1,45 +0,0 @@ -From: Stephen Hemminger -Subject: bridge: allow receiption on disabled port - -When an ethernet device is enslaved to a bridge, and the bridge STP -detects loss of carrier (or operational state down), then normally -packet receiption is blocked. - -This breaks control applications like WPA which maybe expecting to -receive packets to negotiate to bring link up. The bridge needs to -block forwarding packets from these disabled ports, but there is no -hard requirement to not allow local packet delivery. - -Signed-off-by: Stephen Hemminger -Signed-off-by: Felix Fietkau - ---- a/net/bridge/br_input.c -+++ b/net/bridge/br_input.c -@@ -244,6 +244,9 @@ static void __br_handle_local_finish(str - /* note: already called with rcu_read_lock */ - static int br_handle_local_finish(struct net *net, struct sock *sk, struct sk_buff *skb) - { -+ struct net_bridge_port *p = br_port_get_rcu(skb->dev); -+ -+ if (p->state != BR_STATE_DISABLED) - __br_handle_local_finish(skb); - - /* return 1 to signal the okfn() was called so it's ok to use the skb */ -@@ -415,6 +418,17 @@ forward: - goto defer_stp_filtering; - - switch (p->state) { -+ case BR_STATE_DISABLED: -+ if (ether_addr_equal(p->br->dev->dev_addr, dest)) -+ skb->pkt_type = PACKET_HOST; -+ -+ if (NF_HOOK(NFPROTO_BRIDGE, NF_BR_PRE_ROUTING, -+ dev_net(skb->dev), NULL, skb, skb->dev, NULL, -+ br_handle_local_finish) == 1) { -+ return RX_HANDLER_PASS; -+ } -+ break; -+ - case BR_STATE_FORWARDING: - case BR_STATE_LEARNING: - defer_stp_filtering: diff --git a/6.11/target/linux/generic/pending-6.11/151-net-bridge-do-not-send-arp-replies-if-src-and-target.patch b/6.11/target/linux/generic/pending-6.11/151-net-bridge-do-not-send-arp-replies-if-src-and-target.patch deleted file mode 100644 index 3abeacaf..00000000 --- a/6.11/target/linux/generic/pending-6.11/151-net-bridge-do-not-send-arp-replies-if-src-and-target.patch +++ /dev/null @@ -1,37 +0,0 @@ -From: Felix Fietkau -Date: Thu, 4 Jan 2024 15:21:21 +0100 -Subject: [PATCH] net: bridge: do not send arp replies if src and target hw - addr is the same - -There are broken devices in the wild that handle duplicate IP address -detection by sending out ARP requests for the IP that they received from a -DHCP server and refuse the address if they get a reply. -When proxyarp is enabled, they would go into a loop of requesting an address -and then NAKing it again. - -Link: https://github.com/openwrt/openwrt/issues/14309 -Signed-off-by: Felix Fietkau ---- - ---- a/net/bridge/br_arp_nd_proxy.c -+++ b/net/bridge/br_arp_nd_proxy.c -@@ -204,7 +204,10 @@ void br_do_proxy_suppress_arp(struct sk_ - if ((p && (p->flags & BR_PROXYARP)) || - (f->dst && (f->dst->flags & BR_PROXYARP_WIFI)) || - br_is_neigh_suppress_enabled(f->dst, vid)) { -- if (!vid) -+ replied = true; -+ if (!memcmp(n->ha, sha, dev->addr_len)) -+ replied = false; -+ else if (!vid) - br_arp_send(br, p, skb->dev, sip, tip, - sha, n->ha, sha, 0, 0); - else -@@ -212,7 +215,6 @@ void br_do_proxy_suppress_arp(struct sk_ - sha, n->ha, sha, - skb->vlan_proto, - skb_vlan_tag_get(skb)); -- replied = true; - } - - /* If we have replied or as long as we know the diff --git a/6.11/target/linux/generic/pending-6.11/190-rtc-rs5c372-support_alarms_up_to_1_week.patch b/6.11/target/linux/generic/pending-6.11/190-rtc-rs5c372-support_alarms_up_to_1_week.patch deleted file mode 100644 index 2f5c2228..00000000 --- a/6.11/target/linux/generic/pending-6.11/190-rtc-rs5c372-support_alarms_up_to_1_week.patch +++ /dev/null @@ -1,94 +0,0 @@ -From: Daniel González Cabanelas -Subject: [PATCH 1/2] rtc: rs5c372: support alarms up to 1 week - -The Ricoh R2221x, R2223x, RS5C372, RV5C387A chips can handle 1 week -alarms. - -Read the "wday" alarm register and convert it to a date to support up 1 -week in our driver. - -Signed-off-by: Daniel González Cabanelas ---- - drivers/rtc/rtc-rs5c372.c | 48 ++++++++++++++++++++++++++++++++++----- - 1 file changed, 42 insertions(+), 6 deletions(-) - ---- a/drivers/rtc/rtc-rs5c372.c -+++ b/drivers/rtc/rtc-rs5c372.c -@@ -399,7 +399,9 @@ static int rs5c_read_alarm(struct device - { - struct i2c_client *client = to_i2c_client(dev); - struct rs5c372 *rs5c = i2c_get_clientdata(client); -- int status; -+ int status, wday_offs; -+ struct rtc_time rtc; -+ unsigned long alarm_secs; - - status = rs5c_get_regs(rs5c); - if (status < 0) -@@ -409,6 +411,30 @@ static int rs5c_read_alarm(struct device - t->time.tm_sec = 0; - t->time.tm_min = bcd2bin(rs5c->regs[RS5C_REG_ALARM_A_MIN] & 0x7f); - t->time.tm_hour = rs5c_reg2hr(rs5c, rs5c->regs[RS5C_REG_ALARM_A_HOURS]); -+ t->time.tm_wday = ffs(rs5c->regs[RS5C_REG_ALARM_A_WDAY] & 0x7f) - 1; -+ -+ /* determine the day, month and year based on alarm wday, taking as a -+ * reference the current time from the rtc -+ */ -+ status = rs5c372_rtc_read_time(dev, &rtc); -+ if (status < 0) -+ return status; -+ -+ wday_offs = t->time.tm_wday - rtc.tm_wday; -+ alarm_secs = mktime64(rtc.tm_year + 1900, -+ rtc.tm_mon + 1, -+ rtc.tm_mday + wday_offs, -+ t->time.tm_hour, -+ t->time.tm_min, -+ t->time.tm_sec); -+ -+ if (wday_offs < 0 || (wday_offs == 0 && -+ (t->time.tm_hour < rtc.tm_hour || -+ (t->time.tm_hour == rtc.tm_hour && -+ t->time.tm_min <= rtc.tm_min)))) -+ alarm_secs += 7 * 86400; -+ -+ rtc_time64_to_tm(alarm_secs, &t->time); - - /* ... and status */ - t->enabled = !!(rs5c->regs[RS5C_REG_CTRL1] & RS5C_CTRL1_AALE); -@@ -423,12 +449,20 @@ static int rs5c_set_alarm(struct device - struct rs5c372 *rs5c = i2c_get_clientdata(client); - int status, addr, i; - unsigned char buf[3]; -+ struct rtc_time rtc_tm; -+ unsigned long rtc_secs, alarm_secs; - -- /* only handle up to 24 hours in the future, like RTC_ALM_SET */ -- if (t->time.tm_mday != -1 -- || t->time.tm_mon != -1 -- || t->time.tm_year != -1) -+ /* chip only can handle alarms up to one week in the future*/ -+ status = rs5c372_rtc_read_time(dev, &rtc_tm); -+ if (status) -+ return status; -+ rtc_secs = rtc_tm_to_time64(&rtc_tm); -+ alarm_secs = rtc_tm_to_time64(&t->time); -+ if (alarm_secs >= rtc_secs + 7 * 86400) { -+ dev_err(dev, "%s: alarm maximum is one week in the future (%d)\n", -+ __func__, status); - return -EINVAL; -+ } - - /* REVISIT: round up tm_sec */ - -@@ -449,7 +483,9 @@ static int rs5c_set_alarm(struct device - /* set alarm */ - buf[0] = bin2bcd(t->time.tm_min); - buf[1] = rs5c_hr2reg(rs5c, t->time.tm_hour); -- buf[2] = 0x7f; /* any/all days */ -+ /* each bit is the day of the week, 0x7f means all days */ -+ buf[2] = (t->time.tm_wday >= 0 && t->time.tm_wday < 7) ? -+ BIT(t->time.tm_wday) : 0x7f; - - for (i = 0; i < sizeof(buf); i++) { - addr = RS5C_ADDR(RS5C_REG_ALARM_A_MIN + i); diff --git a/6.11/target/linux/generic/pending-6.11/205-backtrace_module_info.patch b/6.11/target/linux/generic/pending-6.11/205-backtrace_module_info.patch deleted file mode 100644 index 34018e2c..00000000 --- a/6.11/target/linux/generic/pending-6.11/205-backtrace_module_info.patch +++ /dev/null @@ -1,41 +0,0 @@ -From: Felix Fietkau -Subject: kernel: when KALLSYMS is disabled, print module address + size for matching backtrace entries - -[john@phrozen.org: felix will add this to his upstream queue] - -lede-commit 53827cdc824556cda910b23ce5030c363b8f1461 -Signed-off-by: Felix Fietkau ---- - lib/vsprintf.c | 15 +++++++++++---- - 1 file changed, 11 insertions(+), 4 deletions(-) - ---- a/lib/vsprintf.c -+++ b/lib/vsprintf.c -@@ -982,8 +982,10 @@ char *symbol_string(char *buf, char *end - struct printf_spec spec, const char *fmt) - { - unsigned long value; --#ifdef CONFIG_KALLSYMS - char sym[KSYM_SYMBOL_LEN]; -+#ifndef CONFIG_KALLSYMS -+ struct module *mod; -+ int len; - #endif - - if (fmt[1] == 'R') -@@ -1004,8 +1006,14 @@ char *symbol_string(char *buf, char *end - - return string_nocheck(buf, end, sym, spec); - #else -- return special_hex_number(buf, end, value, sizeof(void *)); -+ len = snprintf(sym, sizeof(sym), "0x%lx", value); -+ mod = __module_address(value); -+ if (mod) -+ snprintf(sym + len, sizeof(sym) - len, " [%s@%p+0x%x]", -+ mod->name, mod->mem[MOD_TEXT].base, -+ mod->mem[MOD_TEXT].size); - #endif -+ return string(buf, end, sym, spec); - } - - static const struct printf_spec default_str_spec = { diff --git a/6.11/target/linux/generic/pending-6.11/240-remove-unsane-filenames-from-deps_initramfs-list.patch b/6.11/target/linux/generic/pending-6.11/240-remove-unsane-filenames-from-deps_initramfs-list.patch deleted file mode 100644 index 9e78284e..00000000 --- a/6.11/target/linux/generic/pending-6.11/240-remove-unsane-filenames-from-deps_initramfs-list.patch +++ /dev/null @@ -1,30 +0,0 @@ -From: Gabor Juhos -Subject: usr: sanitize deps_initramfs list - -If any filename in the intramfs dependency -list contains a colon, that causes a kernel -build error like this: - -/devel/openwrt/build_dir/linux-ar71xx_generic/linux-3.6.6/usr/Makefile:58: *** multiple target patterns. Stop. -make[5]: *** [usr] Error 2 - -Fix it by removing such filenames from the -deps_initramfs list. - -Signed-off-by: Gabor Juhos -Signed-off-by: Felix Fietkau ---- - usr/Makefile | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - ---- a/usr/Makefile -+++ b/usr/Makefile -@@ -56,6 +56,8 @@ hostprogs := gen_init_cpio - # The dependency list is generated by gen_initramfs.sh -l - -include $(obj)/.initramfs_data.cpio.d - -+deps_initramfs := $(foreach v,$(deps_initramfs),$(if $(findstring :,$(v)),,$(v))) -+ - # do not try to update files included in initramfs - $(deps_initramfs): ; - diff --git a/6.11/target/linux/generic/pending-6.11/300-mips_expose_boot_raw.patch b/6.11/target/linux/generic/pending-6.11/300-mips_expose_boot_raw.patch deleted file mode 100644 index ebeeb7ba..00000000 --- a/6.11/target/linux/generic/pending-6.11/300-mips_expose_boot_raw.patch +++ /dev/null @@ -1,40 +0,0 @@ -From: Mark Miller -Subject: mips: expose CONFIG_BOOT_RAW - -This exposes the CONFIG_BOOT_RAW symbol in Kconfig. This is needed on -certain Broadcom chipsets running CFE in order to load the kernel. - -Signed-off-by: Mark Miller -Acked-by: Rob Landley ---- ---- a/arch/mips/Kconfig -+++ b/arch/mips/Kconfig -@@ -1013,9 +1013,6 @@ config FW_ARC - config ARCH_MAY_HAVE_PC_FDC - bool - --config BOOT_RAW -- bool -- - config CEVT_BCM1480 - bool - -@@ -2996,6 +2993,18 @@ choice - bool "Extend builtin kernel arguments with bootloader arguments" - endchoice - -+config BOOT_RAW -+ bool "Enable the kernel to be executed from the load address" -+ default n -+ help -+ Allow the kernel to be executed from the load address for -+ bootloaders which cannot read the ELF format. This places -+ a jump to start_kernel at the load address. -+ -+ If unsure, say N. -+ -+ -+ - endmenu - - config LOCKDEP_SUPPORT diff --git a/6.11/target/linux/generic/pending-6.11/301-MIPS-Add-barriers-between-dcache-icache-flushes.patch b/6.11/target/linux/generic/pending-6.11/301-MIPS-Add-barriers-between-dcache-icache-flushes.patch deleted file mode 100644 index b3cb5f0c..00000000 --- a/6.11/target/linux/generic/pending-6.11/301-MIPS-Add-barriers-between-dcache-icache-flushes.patch +++ /dev/null @@ -1,71 +0,0 @@ -From e6e6ef4275978823ec3a84133fc91f4ffbef5c84 Mon Sep 17 00:00:00 2001 -From: Paul Burton -Date: Mon, 22 Feb 2016 18:09:44 +0000 -Subject: [PATCH] MIPS: Add barriers between dcache & icache flushes - -Index-based cache operations may be arbitrarily reordered by out of -order CPUs. Thus code which writes back the dcache & then invalidates -the icache using indexed cache ops must include a barrier between -operating on the 2 caches in order to prevent the scenario in which: - - - icache invalidation occurs. - - - icache fetch occurs, due to speculation. - - - dcache writeback occurs. - -If the above were allowed to happen then the icache would contain stale -data. Forcing the dcache writeback to complete before the icache -invalidation avoids this. - -Signed-off-by: Paul Burton -Cc: James Hogan ---- - arch/mips/mm/c-r4k.c | 13 +++++++++++-- - 1 file changed, 11 insertions(+), 2 deletions(-) - ---- a/arch/mips/mm/c-r4k.c -+++ b/arch/mips/mm/c-r4k.c -@@ -403,6 +403,7 @@ static inline void local_r4k___flush_cac - - default: - r4k_blast_dcache(); -+ mb(); /* cache instructions may be reordered */ - r4k_blast_icache(); - break; - } -@@ -483,8 +484,10 @@ static inline void local_r4k_flush_cache - if (cpu_has_dc_aliases || (exec && !cpu_has_ic_fills_f_dc)) - r4k_blast_dcache(); - /* If executable, blast stale lines from icache */ -- if (exec) -+ if (exec) { -+ mb(); /* cache instructions may be reordered */ - r4k_blast_icache(); -+ } - } - - static void r4k_flush_cache_range(struct vm_area_struct *vma, -@@ -586,8 +589,13 @@ static inline void local_r4k_flush_cache - if (cpu_has_dc_aliases || (exec && !cpu_has_ic_fills_f_dc)) { - vaddr ? r4k_blast_dcache_page(addr) : - r4k_blast_dcache_user_page(addr); -- if (exec && !cpu_icache_snoops_remote_store) -+ if (exec) -+ mb(); /* cache instructions may be reordered */ -+ -+ if (exec && !cpu_icache_snoops_remote_store) { - r4k_blast_scache_page(addr); -+ mb(); /* cache instructions may be reordered */ -+ } - } - if (exec) { - if (vaddr && cpu_has_vtag_icache && mm == current->active_mm) { -@@ -654,6 +662,7 @@ static inline void __local_r4k_flush_ica - else - blast_dcache_range(start, end); - } -+ mb(); /* cache instructions may be reordered */ - } - - if (type == R4K_INDEX || diff --git a/6.11/target/linux/generic/pending-6.11/302-mips_no_branch_likely.patch b/6.11/target/linux/generic/pending-6.11/302-mips_no_branch_likely.patch deleted file mode 100644 index 669aa814..00000000 --- a/6.11/target/linux/generic/pending-6.11/302-mips_no_branch_likely.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Felix Fietkau -Subject: mips: use -mno-branch-likely for kernel and userspace - -saves ~11k kernel size after lzma and ~12k squashfs size in the - -lede-commit: 41a039f46450ffae9483d6216422098669da2900 -Signed-off-by: Felix Fietkau ---- - arch/mips/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/arch/mips/Makefile -+++ b/arch/mips/Makefile -@@ -94,7 +94,7 @@ all-$(CONFIG_SYS_SUPPORTS_ZBOOT)+= vmlin - # machines may also. Since BFD is incredibly buggy with respect to - # crossformat linking we rely on the elf2ecoff tool for format conversion. - # --cflags-y += -G 0 -mno-abicalls -fno-pic -pipe -+cflags-y += -G 0 -mno-abicalls -fno-pic -pipe -mno-branch-likely - cflags-y += -msoft-float -Wa,-msoft-float - LDFLAGS_vmlinux += -G 0 -static -n -nostdlib - KBUILD_AFLAGS_MODULE += -mlong-calls diff --git a/6.11/target/linux/generic/pending-6.11/308-mips32r2_tune.patch b/6.11/target/linux/generic/pending-6.11/308-mips32r2_tune.patch deleted file mode 100644 index b1205805..00000000 --- a/6.11/target/linux/generic/pending-6.11/308-mips32r2_tune.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Felix Fietkau -Subject: kernel: add -mtune=34kc to MIPS CFLAGS when building for mips32r2 - -This provides a good tradeoff across at least 24Kc-74Kc, while also -producing smaller code. - -Signed-off-by: Felix Fietkau ---- - arch/mips/Makefile | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/arch/mips/Makefile -+++ b/arch/mips/Makefile -@@ -163,7 +163,7 @@ cflags-$(CONFIG_CPU_R4300) += -march=r43 - cflags-$(CONFIG_CPU_R4X00) += -march=r4600 -Wa,--trap - cflags-$(CONFIG_CPU_TX49XX) += -march=r4600 -Wa,--trap - cflags-$(CONFIG_CPU_MIPS32_R1) += -march=mips32 -Wa,--trap --cflags-$(CONFIG_CPU_MIPS32_R2) += -march=mips32r2 -Wa,--trap -+cflags-$(CONFIG_CPU_MIPS32_R2) += -march=mips32r2 -mtune=34kc -Wa,--trap - cflags-$(CONFIG_CPU_MIPS32_R5) += -march=mips32r5 -Wa,--trap -modd-spreg - cflags-$(CONFIG_CPU_MIPS32_R6) += -march=mips32r6 -Wa,--trap -modd-spreg - cflags-$(CONFIG_CPU_MIPS64_R1) += -march=mips64 -Wa,--trap diff --git a/6.11/target/linux/generic/pending-6.11/310-arm_module_unresolved_weak_sym.patch b/6.11/target/linux/generic/pending-6.11/310-arm_module_unresolved_weak_sym.patch deleted file mode 100644 index 54cc9ba6..00000000 --- a/6.11/target/linux/generic/pending-6.11/310-arm_module_unresolved_weak_sym.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Felix Fietkau -Subject: fix errors in unresolved weak symbols on arm - -lede-commit: 570699d4838a907c3ef9f2819bf19eb72997b32f -Signed-off-by: Felix Fietkau ---- - arch/arm/kernel/module.c | 4 ++++ - 1 file changed, 4 insertions(+) - ---- a/arch/arm/kernel/module.c -+++ b/arch/arm/kernel/module.c -@@ -146,6 +146,10 @@ apply_relocate(Elf32_Shdr *sechdrs, cons - return -ENOEXEC; - } - -+ if ((IS_ERR_VALUE(sym->st_value) || !sym->st_value) && -+ ELF_ST_BIND(sym->st_info) == STB_WEAK) -+ continue; -+ - loc = dstsec->sh_addr + rel->r_offset; - - switch (ELF32_R_TYPE(rel->r_info)) { diff --git a/6.11/target/linux/generic/pending-6.11/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch b/6.11/target/linux/generic/pending-6.11/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch deleted file mode 100644 index 3f553b28..00000000 --- a/6.11/target/linux/generic/pending-6.11/330-MIPS-kexec-Accept-command-line-parameters-from-users.patch +++ /dev/null @@ -1,282 +0,0 @@ -From: Yousong Zhou -Subject: MIPS: kexec: Accept command line parameters from userspace. - -Signed-off-by: Yousong Zhou ---- - arch/mips/kernel/machine_kexec.c | 153 +++++++++++++++++++++++++++++++----- - arch/mips/kernel/machine_kexec.h | 20 +++++ - arch/mips/kernel/relocate_kernel.S | 21 +++-- - 3 files changed, 167 insertions(+), 27 deletions(-) - create mode 100644 arch/mips/kernel/machine_kexec.h - ---- a/arch/mips/kernel/machine_kexec.c -+++ b/arch/mips/kernel/machine_kexec.c -@@ -9,14 +9,11 @@ - #include - #include - -+#include - #include - #include -- --extern const unsigned char relocate_new_kernel[]; --extern const size_t relocate_new_kernel_size; -- --extern unsigned long kexec_start_address; --extern unsigned long kexec_indirection_page; -+#include -+#include "machine_kexec.h" - - static unsigned long reboot_code_buffer; - -@@ -30,6 +27,101 @@ void (*_crash_smp_send_stop)(void) = NUL - void (*_machine_kexec_shutdown)(void) = NULL; - void (*_machine_crash_shutdown)(struct pt_regs *regs) = NULL; - -+static void machine_kexec_print_args(void) -+{ -+ unsigned long argc = (int)kexec_args[0]; -+ int i; -+ -+ pr_info("kexec_args[0] (argc): %lu\n", argc); -+ pr_info("kexec_args[1] (argv): %p\n", (void *)kexec_args[1]); -+ pr_info("kexec_args[2] (env ): %p\n", (void *)kexec_args[2]); -+ pr_info("kexec_args[3] (desc): %p\n", (void *)kexec_args[3]); -+ -+ for (i = 0; i < argc; i++) { -+ pr_info("kexec_argv[%d] = %p, %s\n", -+ i, kexec_argv[i], kexec_argv[i]); -+ } -+} -+ -+static void machine_kexec_init_argv(struct kimage *image) -+{ -+ void __user *buf = NULL; -+ size_t bufsz; -+ size_t size; -+ int i; -+ -+ bufsz = 0; -+ for (i = 0; i < image->nr_segments; i++) { -+ struct kexec_segment *seg; -+ -+ seg = &image->segment[i]; -+ if (seg->bufsz < 6) -+ continue; -+ -+ if (strncmp((char *) seg->buf, "kexec ", 6)) -+ continue; -+ -+ buf = seg->buf; -+ bufsz = seg->bufsz; -+ break; -+ } -+ -+ if (!buf) -+ return; -+ -+ size = KEXEC_COMMAND_LINE_SIZE; -+ size = min(size, bufsz); -+ if (size < bufsz) -+ pr_warn("kexec command line truncated to %zd bytes\n", size); -+ -+ /* Copy to kernel space */ -+ if (copy_from_user(kexec_argv_buf, buf, size)) -+ pr_warn("kexec command line copy to kernel space failed\n"); -+ -+ kexec_argv_buf[size - 1] = 0; -+} -+ -+static void machine_kexec_parse_argv(struct kimage *image) -+{ -+ char *reboot_code_buffer; -+ int reloc_delta; -+ char *ptr; -+ int argc; -+ int i; -+ -+ ptr = kexec_argv_buf; -+ argc = 0; -+ -+ /* -+ * convert command line string to array of parameters -+ * (as bootloader does). -+ */ -+ while (ptr && *ptr && (KEXEC_MAX_ARGC > argc)) { -+ if (*ptr == ' ') { -+ *ptr++ = '\0'; -+ continue; -+ } -+ -+ kexec_argv[argc++] = ptr; -+ ptr = strchr(ptr, ' '); -+ } -+ -+ if (!argc) -+ return; -+ -+ kexec_args[0] = argc; -+ kexec_args[1] = (unsigned long)kexec_argv; -+ kexec_args[2] = 0; -+ kexec_args[3] = 0; -+ -+ reboot_code_buffer = page_address(image->control_code_page); -+ reloc_delta = reboot_code_buffer - (char *)kexec_relocate_new_kernel; -+ -+ kexec_args[1] += reloc_delta; -+ for (i = 0; i < argc; i++) -+ kexec_argv[i] += reloc_delta; -+} -+ - static void kexec_image_info(const struct kimage *kimage) - { - unsigned long i; -@@ -99,6 +191,18 @@ machine_kexec_prepare(struct kimage *kim - #endif - - kexec_image_info(kimage); -+ /* -+ * Whenever arguments passed from kexec-tools, Init the arguments as -+ * the original ones to try avoiding booting failure. -+ */ -+ -+ kexec_args[0] = fw_arg0; -+ kexec_args[1] = fw_arg1; -+ kexec_args[2] = fw_arg2; -+ kexec_args[3] = fw_arg3; -+ -+ machine_kexec_init_argv(kimage); -+ machine_kexec_parse_argv(kimage); - - if (_machine_kexec_prepare) - return _machine_kexec_prepare(kimage); -@@ -161,7 +265,7 @@ machine_crash_shutdown(struct pt_regs *r - void kexec_nonboot_cpu_jump(void) - { - local_flush_icache_range((unsigned long)relocated_kexec_smp_wait, -- reboot_code_buffer + relocate_new_kernel_size); -+ reboot_code_buffer + KEXEC_RELOCATE_NEW_KERNEL_SIZE); - - relocated_kexec_smp_wait(NULL); - } -@@ -199,7 +303,7 @@ void kexec_reboot(void) - * machine_kexec() CPU. - */ - local_flush_icache_range(reboot_code_buffer, -- reboot_code_buffer + relocate_new_kernel_size); -+ reboot_code_buffer + KEXEC_RELOCATE_NEW_KERNEL_SIZE); - - do_kexec = (void *)reboot_code_buffer; - do_kexec(); -@@ -212,10 +316,12 @@ machine_kexec(struct kimage *image) - unsigned long *ptr; - - reboot_code_buffer = -- (unsigned long)page_address(image->control_code_page); -+ (unsigned long)page_address(image->control_code_page); -+ pr_info("reboot_code_buffer = %p\n", (void *)reboot_code_buffer); - - kexec_start_address = - (unsigned long) phys_to_virt(image->start); -+ pr_info("kexec_start_address = %p\n", (void *)kexec_start_address); - - if (image->type == KEXEC_TYPE_DEFAULT) { - kexec_indirection_page = -@@ -223,9 +329,19 @@ machine_kexec(struct kimage *image) - } else { - kexec_indirection_page = (unsigned long)&image->head; - } -+ pr_info("kexec_indirection_page = %p\n", (void *)kexec_indirection_page); - -- memcpy((void*)reboot_code_buffer, relocate_new_kernel, -- relocate_new_kernel_size); -+ pr_info("Where is memcpy: %p\n", memcpy); -+ pr_info("kexec_relocate_new_kernel = %p, kexec_relocate_new_kernel_end = %p\n", -+ (void *)kexec_relocate_new_kernel, &kexec_relocate_new_kernel_end); -+ pr_info("Copy %lu bytes from %p to %p\n", KEXEC_RELOCATE_NEW_KERNEL_SIZE, -+ (void *)kexec_relocate_new_kernel, (void *)reboot_code_buffer); -+ memcpy((void*)reboot_code_buffer, kexec_relocate_new_kernel, -+ KEXEC_RELOCATE_NEW_KERNEL_SIZE); -+ -+ pr_info("Before _print_args().\n"); -+ machine_kexec_print_args(); -+ pr_info("Before eval loop.\n"); - - /* - * The generic kexec code builds a page list with physical -@@ -256,7 +372,7 @@ machine_kexec(struct kimage *image) - #ifdef CONFIG_SMP - /* All secondary cpus now may jump to kexec_wait cycle */ - relocated_kexec_smp_wait = reboot_code_buffer + -- (void *)(kexec_smp_wait - relocate_new_kernel); -+ (void *)(kexec_smp_wait - kexec_relocate_new_kernel); - smp_wmb(); - atomic_set(&kexec_ready_to_reboot, 1); - #endif ---- /dev/null -+++ b/arch/mips/kernel/machine_kexec.h -@@ -0,0 +1,20 @@ -+#ifndef _MACHINE_KEXEC_H -+#define _MACHINE_KEXEC_H -+ -+#ifndef __ASSEMBLY__ -+extern const unsigned char kexec_relocate_new_kernel[]; -+extern unsigned long kexec_relocate_new_kernel_end; -+extern unsigned long kexec_start_address; -+extern unsigned long kexec_indirection_page; -+ -+extern char kexec_argv_buf[]; -+extern char *kexec_argv[]; -+ -+#define KEXEC_RELOCATE_NEW_KERNEL_SIZE ((unsigned long)&kexec_relocate_new_kernel_end - (unsigned long)kexec_relocate_new_kernel) -+#endif /* !__ASSEMBLY__ */ -+ -+#define KEXEC_COMMAND_LINE_SIZE 256 -+#define KEXEC_ARGV_SIZE (KEXEC_COMMAND_LINE_SIZE / 16) -+#define KEXEC_MAX_ARGC (KEXEC_ARGV_SIZE / sizeof(long)) -+ -+#endif ---- a/arch/mips/kernel/relocate_kernel.S -+++ b/arch/mips/kernel/relocate_kernel.S -@@ -10,10 +10,11 @@ - #include - #include - #include -+#include "machine_kexec.h" - - #include - --LEAF(relocate_new_kernel) -+LEAF(kexec_relocate_new_kernel) - PTR_L a0, arg0 - PTR_L a1, arg1 - PTR_L a2, arg2 -@@ -98,7 +99,7 @@ done: - #endif - /* jump to kexec_start_address */ - j s1 -- END(relocate_new_kernel) -+ END(kexec_relocate_new_kernel) - - #ifdef CONFIG_SMP - /* -@@ -177,8 +178,15 @@ EXPORT(kexec_indirection_page) - PTR_WD 0 - .size kexec_indirection_page, PTRSIZE - --relocate_new_kernel_end: -+kexec_argv_buf: -+ EXPORT(kexec_argv_buf) -+ .skip KEXEC_COMMAND_LINE_SIZE -+ .size kexec_argv_buf, KEXEC_COMMAND_LINE_SIZE -+ -+kexec_argv: -+ EXPORT(kexec_argv) -+ .skip KEXEC_ARGV_SIZE -+ .size kexec_argv, KEXEC_ARGV_SIZE - --EXPORT(relocate_new_kernel_size) -- PTR_WD relocate_new_kernel_end - relocate_new_kernel -- .size relocate_new_kernel_size, PTRSIZE -+kexec_relocate_new_kernel_end: -+ EXPORT(kexec_relocate_new_kernel_end) diff --git a/6.11/target/linux/generic/pending-6.11/332-arc-add-OWRTDTB-section.patch b/6.11/target/linux/generic/pending-6.11/332-arc-add-OWRTDTB-section.patch deleted file mode 100644 index 5b943f37..00000000 --- a/6.11/target/linux/generic/pending-6.11/332-arc-add-OWRTDTB-section.patch +++ /dev/null @@ -1,84 +0,0 @@ -From bb0c3b0175240bf152fd7c644821a0cf9f77c37c Mon Sep 17 00:00:00 2001 -From: Evgeniy Didin -Date: Fri, 15 Mar 2019 18:53:38 +0300 -Subject: [PATCH] arc add OWRTDTB section - -This change allows OpenWRT to patch resulting kernel binary with -external .dtb. - -That allows us to re-use exactky the same vmlinux on different boards -given its ARC core configurations match (at least cache line sizes etc). - -""patch-dtb" searches for ASCII "OWRTDTB:" strign and copies external -.dtb right after it, keeping the string in place. - -Signed-off-by: Eugeniy Paltsev -Signed-off-by: Alexey Brodkin -Signed-off-by: Evgeniy Didin ---- - arch/arc/kernel/head.S | 10 ++++++++++ - arch/arc/kernel/setup.c | 4 +++- - arch/arc/kernel/vmlinux.lds.S | 13 +++++++++++++ - 3 files changed, 26 insertions(+), 1 deletion(-) - ---- a/arch/arc/kernel/head.S -+++ b/arch/arc/kernel/head.S -@@ -88,6 +88,16 @@ - DSP_EARLY_INIT - .endm - -+ ; Here "patch-dtb" will embed external .dtb -+ ; Note "patch-dtb" searches for ASCII "OWRTDTB:" string -+ ; and pastes .dtb right after it, hense the string precedes -+ ; __image_dtb symbol. -+ .section .owrt, "aw",@progbits -+ .ascii "OWRTDTB:" -+ENTRY(__image_dtb) -+ .fill 0x4000 -+END(__image_dtb) -+ - .section .init.text, "ax",@progbits - - ;---------------------------------------------------------------- ---- a/arch/arc/kernel/setup.c -+++ b/arch/arc/kernel/setup.c -@@ -450,6 +450,8 @@ static inline bool uboot_arg_invalid(uns - /* We always pass 0 as magic from U-boot */ - #define UBOOT_MAGIC_VALUE 0 - -+extern struct boot_param_header __image_dtb; -+ - void __init handle_uboot_args(void) - { - bool use_embedded_dtb = true; -@@ -488,7 +490,7 @@ void __init handle_uboot_args(void) - ignore_uboot_args: - - if (use_embedded_dtb) { -- machine_desc = setup_machine_fdt(__dtb_start); -+ machine_desc = setup_machine_fdt(&__image_dtb); - if (!machine_desc) - panic("Embedded DT invalid\n"); - } ---- a/arch/arc/kernel/vmlinux.lds.S -+++ b/arch/arc/kernel/vmlinux.lds.S -@@ -27,6 +27,19 @@ SECTIONS - - . = CONFIG_LINUX_LINK_BASE; - -+ /* -+ * In OpenWRT we want to patch built binary embedding .dtb of choice. -+ * This is implemented with "patch-dtb" utility which searches for -+ * "OWRTDTB:" string in first 16k of image and if it is found -+ * copies .dtb right after mentioned string. -+ * -+ * Note: "OWRTDTB:" won't be overwritten with .dtb, .dtb will follow it. -+ */ -+ .owrt : { -+ *(.owrt) -+ . = ALIGN(PAGE_SIZE); -+ } -+ - _int_vec_base_lds = .; - .vector : { - *(.vector) diff --git a/6.11/target/linux/generic/pending-6.11/333-arc-enable-unaligned-access-in-kernel-mode.patch b/6.11/target/linux/generic/pending-6.11/333-arc-enable-unaligned-access-in-kernel-mode.patch deleted file mode 100644 index 1848a84c..00000000 --- a/6.11/target/linux/generic/pending-6.11/333-arc-enable-unaligned-access-in-kernel-mode.patch +++ /dev/null @@ -1,24 +0,0 @@ -From: Alexey Brodkin -Subject: arc: enable unaligned access in kernel mode - -This enables misaligned access handling even in kernel mode. -Some wireless drivers (ath9k-htc and mt7601u) use misaligned accesses -here and there and to cope with that without fixing stuff in the drivers -we're just gracefully handling it on ARC. - -Signed-off-by: Alexey Brodkin ---- - arch/arc/kernel/unaligned.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/arch/arc/kernel/unaligned.c -+++ b/arch/arc/kernel/unaligned.c -@@ -202,7 +202,7 @@ int misaligned_fixup(unsigned long addre - char buf[TASK_COMM_LEN]; - - /* handle user mode only and only if enabled by sysadmin */ -- if (!user_mode(regs) || !unaligned_enabled) -+ if (!unaligned_enabled) - return 1; - - if (no_unaligned_warning) { diff --git a/6.11/target/linux/generic/pending-6.11/342-powerpc-Enable-kernel-XZ-compression-option-on-PPC_8.patch b/6.11/target/linux/generic/pending-6.11/342-powerpc-Enable-kernel-XZ-compression-option-on-PPC_8.patch deleted file mode 100644 index 71173b08..00000000 --- a/6.11/target/linux/generic/pending-6.11/342-powerpc-Enable-kernel-XZ-compression-option-on-PPC_8.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 66770a004afe10df11d3902e16eaa0c2c39436bb Mon Sep 17 00:00:00 2001 -From: Pawel Dembicki -Date: Fri, 24 May 2019 17:56:19 +0200 -Subject: [PATCH] powerpc: Enable kernel XZ compression option on PPC_85xx - -Enable kernel XZ compression option on PPC_85xx. Tested with -simpleImage on TP-Link TL-WDR4900 (Freescale P1014 processor). - -Suggested-by: Christian Lamparter -Signed-off-by: Pawel Dembicki ---- - arch/powerpc/Kconfig | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/arch/powerpc/Kconfig -+++ b/arch/powerpc/Kconfig -@@ -251,7 +251,7 @@ config PPC - select HAVE_KERNEL_GZIP - select HAVE_KERNEL_LZMA if DEFAULT_UIMAGE - select HAVE_KERNEL_LZO if DEFAULT_UIMAGE -- select HAVE_KERNEL_XZ if PPC_BOOK3S || 44x -+ select HAVE_KERNEL_XZ if PPC_BOOK3S || 44x || PPC_85xx - select HAVE_KPROBES - select HAVE_KPROBES_ON_FTRACE - select HAVE_KRETPROBES diff --git a/6.11/target/linux/generic/pending-6.11/350-mips-kernel-fix-detect_memory_region-function.patch b/6.11/target/linux/generic/pending-6.11/350-mips-kernel-fix-detect_memory_region-function.patch deleted file mode 100644 index 3bf7ae98..00000000 --- a/6.11/target/linux/generic/pending-6.11/350-mips-kernel-fix-detect_memory_region-function.patch +++ /dev/null @@ -1,74 +0,0 @@ -From: Shiji Yang -Date: Wed, 13 Mar 2024 20:28:37 +0800 -Subject: [PATCH] mips: kernel: fix detect_memory_region() function - -1. Do not use memcmp() on unallocated memory, as the new introduced - fortify dynamic object size check[1] will report unexpected result. -2. Use a fixed pattern instead of a random function pointer as the - magic value. -3. Flip magic value and double check it. -4. Enable this feature only for 32-bit CPUs. Currently, only ath79 and - ralink CPUs are using it. - -[1] 439a1bcac648 ("fortify: Use __builtin_dynamic_object_size() when available") -Signed-off-by: Shiji Yang ---- - arch/mips/include/asm/bootinfo.h | 2 ++ - arch/mips/kernel/setup.c | 17 ++++++++++++----- - 2 files changed, 14 insertions(+), 5 deletions(-) - ---- a/arch/mips/include/asm/bootinfo.h -+++ b/arch/mips/include/asm/bootinfo.h -@@ -93,7 +93,9 @@ const char *get_system_type(void); - - extern unsigned long mips_machtype; - -+#ifndef CONFIG_64BIT - extern void detect_memory_region(phys_addr_t start, phys_addr_t sz_min, phys_addr_t sz_max); -+#endif - - extern void prom_init(void); - extern void prom_free_prom_memory(void); ---- a/arch/mips/kernel/setup.c -+++ b/arch/mips/kernel/setup.c -@@ -90,21 +90,27 @@ static struct resource bss_resource = { - unsigned long __kaslr_offset __ro_after_init; - EXPORT_SYMBOL(__kaslr_offset); - --static void *detect_magic __initdata = detect_memory_region; -- - #ifdef CONFIG_MIPS_AUTO_PFN_OFFSET - unsigned long ARCH_PFN_OFFSET; - EXPORT_SYMBOL(ARCH_PFN_OFFSET); - #endif - -+#ifndef CONFIG_64BIT -+static u32 detect_magic __initdata; -+#define MIPS_MEM_TEST_PATTERN 0xaa5555aa -+ - void __init detect_memory_region(phys_addr_t start, phys_addr_t sz_min, phys_addr_t sz_max) - { -- void *dm = &detect_magic; -+ void *dm = (void *)KSEG1ADDR(&detect_magic); - phys_addr_t size; - - for (size = sz_min; size < sz_max; size <<= 1) { -- if (!memcmp(dm, dm + size, sizeof(detect_magic))) -- break; -+ __raw_writel(MIPS_MEM_TEST_PATTERN, dm); -+ if (__raw_readl(dm) == __raw_readl(dm + size)) { -+ __raw_writel(~MIPS_MEM_TEST_PATTERN, dm); -+ if (__raw_readl(dm) == __raw_readl(dm + size)) -+ break; -+ } - } - - pr_debug("Memory: %lluMB of RAM detected at 0x%llx (min: %lluMB, max: %lluMB)\n", -@@ -115,6 +121,7 @@ void __init detect_memory_region(phys_ad - - memblock_add(start, size); - } -+#endif /* CONFIG_64BIT */ - - /* - * Manage initrd diff --git a/6.11/target/linux/generic/pending-6.11/360-selftests-bpf-portability-of-unprivileged-tests.patch b/6.11/target/linux/generic/pending-6.11/360-selftests-bpf-portability-of-unprivileged-tests.patch deleted file mode 100644 index 0f28834d..00000000 --- a/6.11/target/linux/generic/pending-6.11/360-selftests-bpf-portability-of-unprivileged-tests.patch +++ /dev/null @@ -1,26 +0,0 @@ -From ecb8f9a7d69698ce20fc6f4d107718d56fa861df Mon Sep 17 00:00:00 2001 -From: Tony Ambardar -Date: Sat, 9 Mar 2024 16:44:53 -0800 -Subject: [PATCH] selftests/bpf: Improve portability of unprivileged tests - -The addition of general support for unprivileged tests in test_loader.c -breaks building test_verifier on non-glibc (e.g. musl) systems, due to the -inclusion of glibc extension '' in 'unpriv_helpers.c'. However, -the header is actually not needed, so remove it to restore building. - -Fixes: 1d56ade032a4 ("selftests/bpf: Unprivileged tests for test_loader.c") -Signed-off-by: Tony Ambardar ---- - tools/testing/selftests/bpf/unpriv_helpers.c | 1 - - 1 file changed, 1 deletion(-) - ---- a/tools/testing/selftests/bpf/unpriv_helpers.c -+++ b/tools/testing/selftests/bpf/unpriv_helpers.c -@@ -2,7 +2,6 @@ - - #include - #include --#include - #include - - #include "unpriv_helpers.h" diff --git a/6.11/target/linux/generic/pending-6.11/400-mtd-mtdsplit-support.patch b/6.11/target/linux/generic/pending-6.11/400-mtd-mtdsplit-support.patch deleted file mode 100644 index bd1c3a12..00000000 --- a/6.11/target/linux/generic/pending-6.11/400-mtd-mtdsplit-support.patch +++ /dev/null @@ -1,328 +0,0 @@ -From 39717277d5c87bdb183cf2f258957b44ba99b4df Mon Sep 17 00:00:00 2001 -From: OpenWrt community -Date: Wed, 13 Jul 2022 11:47:35 +0200 -Subject: [PATCH] mtd: mtdsplit support - ---- - drivers/mtd/Kconfig | 19 ++++ - drivers/mtd/Makefile | 2 + - drivers/mtd/mtdpart.c | 169 ++++++++++++++++++++++++++++----- - include/linux/mtd/mtd.h | 25 +++++ - include/linux/mtd/partitions.h | 7 ++ - 5 files changed, 197 insertions(+), 25 deletions(-) - ---- a/drivers/mtd/Kconfig -+++ b/drivers/mtd/Kconfig -@@ -12,6 +12,25 @@ menuconfig MTD - - if MTD - -+menu "OpenWrt specific MTD options" -+ -+config MTD_ROOTFS_ROOT_DEV -+ bool "Automatically set 'rootfs' partition to be root filesystem" -+ default y -+ -+config MTD_SPLIT_FIRMWARE -+ bool "Automatically split firmware partition for kernel+rootfs" -+ default y -+ -+config MTD_SPLIT_FIRMWARE_NAME -+ string "Firmware partition name" -+ depends on MTD_SPLIT_FIRMWARE -+ default "firmware" -+ -+source "drivers/mtd/mtdsplit/Kconfig" -+ -+endmenu -+ - config MTD_TESTS - tristate "MTD tests support (DANGEROUS)" - depends on m ---- a/drivers/mtd/Makefile -+++ b/drivers/mtd/Makefile -@@ -9,6 +9,8 @@ mtd-y := mtdcore.o mtdsuper.o mtdconc - - obj-y += parsers/ - -+obj-$(CONFIG_MTD_SPLIT) += mtdsplit/ -+ - # 'Users' - code which presents functionality to userspace. - obj-$(CONFIG_MTD_BLKDEVS) += mtd_blkdevs.o - obj-$(CONFIG_MTD_BLOCK) += mtdblock.o ---- a/drivers/mtd/mtdpart.c -+++ b/drivers/mtd/mtdpart.c -@@ -15,11 +15,13 @@ - #include - #include - #include -+#include - #include - #include - #include - - #include "mtdcore.h" -+#include "mtdsplit/mtdsplit.h" - - /* - * MTD methods which simply translate the effective address and pass through -@@ -242,6 +244,147 @@ static int mtd_add_partition_attrs(struc - return ret; - } - -+static DEFINE_SPINLOCK(part_parser_lock); -+static LIST_HEAD(part_parsers); -+ -+static struct mtd_part_parser *mtd_part_parser_get(const char *name) -+{ -+ struct mtd_part_parser *p, *ret = NULL; -+ -+ spin_lock(&part_parser_lock); -+ -+ list_for_each_entry(p, &part_parsers, list) -+ if (!strcmp(p->name, name) && try_module_get(p->owner)) { -+ ret = p; -+ break; -+ } -+ -+ spin_unlock(&part_parser_lock); -+ -+ return ret; -+} -+ -+static inline void mtd_part_parser_put(const struct mtd_part_parser *p) -+{ -+ module_put(p->owner); -+} -+ -+static struct mtd_part_parser * -+get_partition_parser_by_type(enum mtd_parser_type type, -+ struct mtd_part_parser *start) -+{ -+ struct mtd_part_parser *p, *ret = NULL; -+ -+ spin_lock(&part_parser_lock); -+ -+ p = list_prepare_entry(start, &part_parsers, list); -+ if (start) -+ mtd_part_parser_put(start); -+ -+ list_for_each_entry_continue(p, &part_parsers, list) { -+ if (p->type == type && try_module_get(p->owner)) { -+ ret = p; -+ break; -+ } -+ } -+ -+ spin_unlock(&part_parser_lock); -+ -+ return ret; -+} -+ -+static int parse_mtd_partitions_by_type(struct mtd_info *master, -+ enum mtd_parser_type type, -+ const struct mtd_partition **pparts, -+ struct mtd_part_parser_data *data) -+{ -+ struct mtd_part_parser *prev = NULL; -+ int ret = 0; -+ -+ while (1) { -+ struct mtd_part_parser *parser; -+ -+ parser = get_partition_parser_by_type(type, prev); -+ if (!parser) -+ break; -+ -+ ret = (*parser->parse_fn)(master, pparts, data); -+ -+ if (ret > 0) { -+ mtd_part_parser_put(parser); -+ printk(KERN_NOTICE -+ "%d %s partitions found on MTD device %s\n", -+ ret, parser->name, master->name); -+ break; -+ } -+ -+ prev = parser; -+ } -+ -+ return ret; -+} -+ -+static int -+run_parsers_by_type(struct mtd_info *child, enum mtd_parser_type type) -+{ -+ struct mtd_partition *parts; -+ int nr_parts; -+ int i; -+ -+ nr_parts = parse_mtd_partitions_by_type(child, type, (const struct mtd_partition **)&parts, -+ NULL); -+ if (nr_parts <= 0) -+ return nr_parts; -+ -+ if (WARN_ON(!parts)) -+ return 0; -+ -+ for (i = 0; i < nr_parts; i++) { -+ /* adjust partition offsets */ -+ parts[i].offset += child->part.offset; -+ -+ mtd_add_partition(child->parent, -+ parts[i].name, -+ parts[i].offset, -+ parts[i].size); -+ } -+ -+ kfree(parts); -+ -+ return nr_parts; -+} -+ -+#ifdef CONFIG_MTD_SPLIT_FIRMWARE_NAME -+#define SPLIT_FIRMWARE_NAME CONFIG_MTD_SPLIT_FIRMWARE_NAME -+#else -+#define SPLIT_FIRMWARE_NAME "unused" -+#endif -+ -+static void split_firmware(struct mtd_info *master, struct mtd_info *part) -+{ -+ run_parsers_by_type(part, MTD_PARSER_TYPE_FIRMWARE); -+} -+ -+static void mtd_partition_split(struct mtd_info *master, struct mtd_info *part) -+{ -+ static int rootfs_found = 0; -+ -+ if (rootfs_found) -+ return; -+ -+ if (of_find_property(mtd_get_of_node(part), "linux,rootfs", NULL) || -+ !strcmp(part->name, "rootfs")) { -+ run_parsers_by_type(part, MTD_PARSER_TYPE_ROOTFS); -+ -+ rootfs_found = 1; -+ } -+ -+ if (IS_ENABLED(CONFIG_MTD_SPLIT_FIRMWARE) && -+ !strcmp(part->name, SPLIT_FIRMWARE_NAME) && -+ !of_find_property(mtd_get_of_node(part), "compatible", NULL)) -+ split_firmware(master, part); -+} -+ - int mtd_add_partition(struct mtd_info *parent, const char *name, - long long offset, long long length) - { -@@ -280,6 +423,7 @@ int mtd_add_partition(struct mtd_info *p - if (ret) - goto err_remove_part; - -+ mtd_partition_split(parent, child); - mtd_add_partition_attrs(child); - - return 0; -@@ -423,6 +567,7 @@ int add_mtd_partitions(struct mtd_info * - goto err_del_partitions; - } - -+ mtd_partition_split(master, child); - mtd_add_partition_attrs(child); - - /* Look for subpartitions */ -@@ -439,31 +584,6 @@ err_del_partitions: - return ret; - } - --static DEFINE_SPINLOCK(part_parser_lock); --static LIST_HEAD(part_parsers); -- --static struct mtd_part_parser *mtd_part_parser_get(const char *name) --{ -- struct mtd_part_parser *p, *ret = NULL; -- -- spin_lock(&part_parser_lock); -- -- list_for_each_entry(p, &part_parsers, list) -- if (!strcmp(p->name, name) && try_module_get(p->owner)) { -- ret = p; -- break; -- } -- -- spin_unlock(&part_parser_lock); -- -- return ret; --} -- --static inline void mtd_part_parser_put(const struct mtd_part_parser *p) --{ -- module_put(p->owner); --} -- - /* - * Many partition parsers just expected the core to kfree() all their data in - * one chunk. Do that by default. ---- a/include/linux/mtd/mtd.h -+++ b/include/linux/mtd/mtd.h -@@ -615,6 +615,24 @@ static inline void mtd_align_erase_req(s - req->len += mtd->erasesize - mod; - } - -+static inline uint64_t mtd_roundup_to_eb(uint64_t sz, struct mtd_info *mtd) -+{ -+ if (mtd_mod_by_eb(sz, mtd) == 0) -+ return sz; -+ -+ /* Round up to next erase block */ -+ return (mtd_div_by_eb(sz, mtd) + 1) * mtd->erasesize; -+} -+ -+static inline uint64_t mtd_rounddown_to_eb(uint64_t sz, struct mtd_info *mtd) -+{ -+ if (mtd_mod_by_eb(sz, mtd) == 0) -+ return sz; -+ -+ /* Round down to the start of the current erase block */ -+ return (mtd_div_by_eb(sz, mtd)) * mtd->erasesize; -+} -+ - static inline uint32_t mtd_div_by_ws(uint64_t sz, struct mtd_info *mtd) - { - if (mtd->writesize_shift) -@@ -688,6 +706,13 @@ extern struct mtd_info *of_get_mtd_devic - extern struct mtd_info *get_mtd_device_nm(const char *name); - extern void put_mtd_device(struct mtd_info *mtd); - -+static inline uint64_t mtdpart_get_offset(const struct mtd_info *mtd) -+{ -+ if (!mtd_is_partition(mtd)) -+ return 0; -+ -+ return mtd->part.offset; -+} - - struct mtd_notifier { - void (*add)(struct mtd_info *mtd); ---- a/include/linux/mtd/partitions.h -+++ b/include/linux/mtd/partitions.h -@@ -75,6 +75,12 @@ struct mtd_part_parser_data { - * Functions dealing with the various ways of partitioning the space - */ - -+enum mtd_parser_type { -+ MTD_PARSER_TYPE_DEVICE = 0, -+ MTD_PARSER_TYPE_ROOTFS, -+ MTD_PARSER_TYPE_FIRMWARE, -+}; -+ - struct mtd_part_parser { - struct list_head list; - struct module *owner; -@@ -83,6 +89,7 @@ struct mtd_part_parser { - int (*parse_fn)(struct mtd_info *, const struct mtd_partition **, - struct mtd_part_parser_data *); - void (*cleanup)(const struct mtd_partition *pparts, int nr_parts); -+ enum mtd_parser_type type; - }; - - /* Container for passing around a set of parsed partitions */ diff --git a/6.11/target/linux/generic/pending-6.11/401-mtd-don-t-register-NVMEM-devices-for-partitions-with.patch b/6.11/target/linux/generic/pending-6.11/401-mtd-don-t-register-NVMEM-devices-for-partitions-with.patch deleted file mode 100644 index 54a02d8e..00000000 --- a/6.11/target/linux/generic/pending-6.11/401-mtd-don-t-register-NVMEM-devices-for-partitions-with.patch +++ /dev/null @@ -1,48 +0,0 @@ -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Date: Tue, 31 Oct 2023 15:51:01 +0100 -Subject: [PATCH] mtd: don't register NVMEM devices for partitions with custom - drivers -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This fixes issue exposed by upstream commit f4cf4e5db331 ("Revert -"nvmem: add new config option""). - -Signed-off-by: Rafał Miłecki ---- - drivers/mtd/mtdcore.c | 23 +++++++++++++++++++++++ - 1 file changed, 23 insertions(+) - ---- a/drivers/mtd/mtdcore.c -+++ b/drivers/mtd/mtdcore.c -@@ -548,6 +548,29 @@ static int mtd_nvmem_add(struct mtd_info - struct device_node *node = mtd_get_of_node(mtd); - struct nvmem_config config = {}; - -+ /* -+ * Do NOT register NVMEM device for any partition that is meant to be -+ * handled by a U-Boot env driver. That would result in associating two -+ * different NVMEM devices with the same OF node. -+ * -+ * An example of unwanted behaviour of above (forwardtrace): -+ * of_get_mac_addr_nvmem() -+ * of_nvmem_cell_get() -+ * __nvmem_device_get() -+ * -+ * We can't have __nvmem_device_get() return "mtdX" NVMEM device instead -+ * of U-Boot env NVMEM device. That would result in failing to find -+ * NVMEM cell. -+ * -+ * This issue seems to affect U-Boot env case only and will go away with -+ * switch to NVMEM layouts. -+ */ -+ if (of_device_is_compatible(node, "u-boot,env") || -+ of_device_is_compatible(node, "u-boot,env-redundant-bool") || -+ of_device_is_compatible(node, "u-boot,env-redundant-count") || -+ of_device_is_compatible(node, "brcm,env")) -+ return 0; -+ - config.id = NVMEM_DEVID_NONE; - config.dev = &mtd->dev; - config.name = dev_name(&mtd->dev); diff --git a/6.11/target/linux/generic/pending-6.11/420-mtd-redboot_space.patch b/6.11/target/linux/generic/pending-6.11/420-mtd-redboot_space.patch deleted file mode 100644 index 5518ea71..00000000 --- a/6.11/target/linux/generic/pending-6.11/420-mtd-redboot_space.patch +++ /dev/null @@ -1,41 +0,0 @@ -From: Felix Fietkau -Subject: add patch for including unpartitioned space in the rootfs partition for redboot devices (if applicable) - -[john@phrozen.org: used by ixp and others] - -lede-commit: 394918851f84e4d00fa16eb900e7700e95091f00 -Signed-off-by: Felix Fietkau ---- - drivers/mtd/redboot.c | 19 +++++++++++++------ - 1 file changed, 13 insertions(+), 6 deletions(-) - ---- a/drivers/mtd/parsers/redboot.c -+++ b/drivers/mtd/parsers/redboot.c -@@ -278,14 +278,21 @@ nogood: - #endif - names += strlen(names) + 1; - --#ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED - if (fl->next && fl->img->flash_base + fl->img->size + master->erasesize <= fl->next->img->flash_base) { -- i++; -- parts[i].offset = parts[i - 1].size + parts[i - 1].offset; -- parts[i].size = fl->next->img->flash_base - parts[i].offset; -- parts[i].name = nullname; -- } -+ if (!strcmp(parts[i].name, "rootfs")) { -+ parts[i].size = fl->next->img->flash_base; -+ parts[i].size &= ~(master->erasesize - 1); -+ parts[i].size -= parts[i].offset; -+#ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED -+ nrparts--; -+ } else { -+ i++; -+ parts[i].offset = parts[i-1].size + parts[i-1].offset; -+ parts[i].size = fl->next->img->flash_base - parts[i].offset; -+ parts[i].name = nullname; - #endif -+ } -+ } - tmp_fl = fl; - fl = fl->next; - kfree(tmp_fl); diff --git a/6.11/target/linux/generic/pending-6.11/430-mtd-add-myloader-partition-parser.patch b/6.11/target/linux/generic/pending-6.11/430-mtd-add-myloader-partition-parser.patch deleted file mode 100644 index 35e80d6d..00000000 --- a/6.11/target/linux/generic/pending-6.11/430-mtd-add-myloader-partition-parser.patch +++ /dev/null @@ -1,229 +0,0 @@ -From: Florian Fainelli -Subject: Add myloader partition table parser - -[john@phozen.org: shoud be upstreamable] - -lede-commit: d8bf22859b51faa09d22c056fe221a45d2f7a3b8 -Signed-off-by: Florian Fainelli -[adjust for kernel 5.4, add myloader.c to patch] -Signed-off-by: Adrian Schmutzler - ---- a/drivers/mtd/parsers/Kconfig -+++ b/drivers/mtd/parsers/Kconfig -@@ -67,6 +67,22 @@ config MTD_CMDLINE_PARTS - - If unsure, say 'N'. - -+config MTD_MYLOADER_PARTS -+ tristate "MyLoader partition parsing" -+ depends on ADM5120 || ATH79 -+ help -+ MyLoader is a bootloader which allows the user to define partitions -+ in flash devices, by putting a table in the second erase block -+ on the device, similar to a partition table. This table gives the -+ offsets and lengths of the user defined partitions. -+ -+ If you need code which can detect and parse these tables, and -+ register MTD 'partitions' corresponding to each image detected, -+ enable this option. -+ -+ You will still need the parsing functions to be called by the driver -+ for your particular device. It won't happen automatically. -+ - config MTD_OF_PARTS - tristate "OpenFirmware (device tree) partitioning parser" - default y ---- a/drivers/mtd/parsers/Makefile -+++ b/drivers/mtd/parsers/Makefile -@@ -4,6 +4,7 @@ obj-$(CONFIG_MTD_BCM47XX_PARTS) += bcm4 - obj-$(CONFIG_MTD_BCM63XX_PARTS) += bcm63xxpart.o - obj-$(CONFIG_MTD_BRCM_U_BOOT) += brcm_u-boot.o - obj-$(CONFIG_MTD_CMDLINE_PARTS) += cmdlinepart.o -+obj-$(CONFIG_MTD_MYLOADER_PARTS) += myloader.o - obj-$(CONFIG_MTD_OF_PARTS) += ofpart.o - ofpart-y += ofpart_core.o - ofpart-$(CONFIG_MTD_OF_PARTS_BCM4908) += ofpart_bcm4908.o ---- /dev/null -+++ b/drivers/mtd/parsers/myloader.c -@@ -0,0 +1,181 @@ -+/* -+ * Parse MyLoader-style flash partition tables and produce a Linux partition -+ * array to match. -+ * -+ * Copyright (C) 2007-2009 Gabor Juhos -+ * -+ * This file was based on drivers/mtd/redboot.c -+ * Author: Red Hat, Inc. - David Woodhouse -+ * -+ * This program is free software; you can redistribute it and/or modify it -+ * under the terms of the GNU General Public License version 2 as published -+ * by the Free Software Foundation. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define BLOCK_LEN_MIN 0x10000 -+#define PART_NAME_LEN 32 -+ -+struct part_data { -+ struct mylo_partition_table tab; -+ char names[MYLO_MAX_PARTITIONS][PART_NAME_LEN]; -+}; -+ -+static int myloader_parse_partitions(struct mtd_info *master, -+ const struct mtd_partition **pparts, -+ struct mtd_part_parser_data *data) -+{ -+ struct part_data *buf; -+ struct mylo_partition_table *tab; -+ struct mylo_partition *part; -+ struct mtd_partition *mtd_parts; -+ struct mtd_partition *mtd_part; -+ int num_parts; -+ int ret, i; -+ size_t retlen; -+ char *names; -+ unsigned long offset; -+ unsigned long blocklen; -+ -+ buf = vmalloc(sizeof(*buf)); -+ if (!buf) { -+ return -ENOMEM; -+ goto out; -+ } -+ tab = &buf->tab; -+ -+ blocklen = master->erasesize; -+ if (blocklen < BLOCK_LEN_MIN) -+ blocklen = BLOCK_LEN_MIN; -+ -+ offset = blocklen; -+ -+ /* Find the partition table */ -+ for (i = 0; i < 4; i++, offset += blocklen) { -+ printk(KERN_DEBUG "%s: searching for MyLoader partition table" -+ " at offset 0x%lx\n", master->name, offset); -+ -+ ret = mtd_read(master, offset, sizeof(*buf), &retlen, -+ (void *)buf); -+ if (ret) -+ goto out_free_buf; -+ -+ if (retlen != sizeof(*buf)) { -+ ret = -EIO; -+ goto out_free_buf; -+ } -+ -+ /* Check for Partition Table magic number */ -+ if (tab->magic == le32_to_cpu(MYLO_MAGIC_PARTITIONS)) -+ break; -+ -+ } -+ -+ if (tab->magic != le32_to_cpu(MYLO_MAGIC_PARTITIONS)) { -+ printk(KERN_DEBUG "%s: no MyLoader partition table found\n", -+ master->name); -+ ret = 0; -+ goto out_free_buf; -+ } -+ -+ /* The MyLoader and the Partition Table is always present */ -+ num_parts = 2; -+ -+ /* Detect number of used partitions */ -+ for (i = 0; i < MYLO_MAX_PARTITIONS; i++) { -+ part = &tab->partitions[i]; -+ -+ if (le16_to_cpu(part->type) == PARTITION_TYPE_FREE) -+ continue; -+ -+ num_parts++; -+ } -+ -+ mtd_parts = kzalloc((num_parts * sizeof(*mtd_part) + -+ num_parts * PART_NAME_LEN), GFP_KERNEL); -+ -+ if (!mtd_parts) { -+ ret = -ENOMEM; -+ goto out_free_buf; -+ } -+ -+ mtd_part = mtd_parts; -+ names = (char *)&mtd_parts[num_parts]; -+ -+ strncpy(names, "myloader", PART_NAME_LEN); -+ mtd_part->name = names; -+ mtd_part->offset = 0; -+ mtd_part->size = offset; -+ mtd_part->mask_flags = MTD_WRITEABLE; -+ mtd_part++; -+ names += PART_NAME_LEN; -+ -+ strncpy(names, "partition_table", PART_NAME_LEN); -+ mtd_part->name = names; -+ mtd_part->offset = offset; -+ mtd_part->size = blocklen; -+ mtd_part->mask_flags = MTD_WRITEABLE; -+ mtd_part++; -+ names += PART_NAME_LEN; -+ -+ for (i = 0; i < MYLO_MAX_PARTITIONS; i++) { -+ part = &tab->partitions[i]; -+ -+ if (le16_to_cpu(part->type) == PARTITION_TYPE_FREE) -+ continue; -+ -+ if ((buf->names[i][0]) && (buf->names[i][0] != '\xff')) -+ strncpy(names, buf->names[i], PART_NAME_LEN); -+ else -+ snprintf(names, PART_NAME_LEN, "partition%d", i); -+ -+ mtd_part->offset = le32_to_cpu(part->addr); -+ mtd_part->size = le32_to_cpu(part->size); -+ mtd_part->name = names; -+ mtd_part++; -+ names += PART_NAME_LEN; -+ } -+ -+ *pparts = mtd_parts; -+ ret = num_parts; -+ -+ out_free_buf: -+ vfree(buf); -+ out: -+ return ret; -+} -+ -+static struct mtd_part_parser myloader_mtd_parser = { -+ .owner = THIS_MODULE, -+ .parse_fn = myloader_parse_partitions, -+ .name = "MyLoader", -+}; -+ -+static int __init myloader_mtd_parser_init(void) -+{ -+ register_mtd_parser(&myloader_mtd_parser); -+ -+ return 0; -+} -+ -+static void __exit myloader_mtd_parser_exit(void) -+{ -+ deregister_mtd_parser(&myloader_mtd_parser); -+} -+ -+module_init(myloader_mtd_parser_init); -+module_exit(myloader_mtd_parser_exit); -+ -+MODULE_AUTHOR("Gabor Juhos "); -+MODULE_DESCRIPTION("Parsing code for MyLoader partition tables"); -+MODULE_LICENSE("GPL v2"); diff --git a/6.11/target/linux/generic/pending-6.11/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch b/6.11/target/linux/generic/pending-6.11/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch deleted file mode 100644 index bcea45d0..00000000 --- a/6.11/target/linux/generic/pending-6.11/431-mtd-bcm47xxpart-check-for-bad-blocks-when-calculatin.patch +++ /dev/null @@ -1,68 +0,0 @@ -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Subject: [PATCH] mtd: bcm47xxpart: check for bad blocks when calculating offsets - -Signed-off-by: Rafał Miłecki ---- - ---- a/drivers/mtd/parsers/parser_trx.c -+++ b/drivers/mtd/parsers/parser_trx.c -@@ -25,6 +25,33 @@ struct trx_header { - uint32_t offset[3]; - } __packed; - -+/* -+ * Calculate real end offset (address) for a given amount of data. It checks -+ * all blocks skipping bad ones. -+ */ -+static size_t parser_trx_real_offset(struct mtd_info *mtd, size_t bytes) -+{ -+ size_t real_offset = 0; -+ -+ if (mtd_block_isbad(mtd, real_offset)) -+ pr_warn("Base offset shouldn't be at bad block"); -+ -+ while (bytes >= mtd->erasesize) { -+ bytes -= mtd->erasesize; -+ real_offset += mtd->erasesize; -+ while (mtd_block_isbad(mtd, real_offset)) { -+ real_offset += mtd->erasesize; -+ -+ if (real_offset >= mtd->size) -+ return real_offset - mtd->erasesize; -+ } -+ } -+ -+ real_offset += bytes; -+ -+ return real_offset; -+} -+ - static const char *parser_trx_data_part_name(struct mtd_info *master, - size_t offset) - { -@@ -86,21 +113,21 @@ static int parser_trx_parse(struct mtd_i - if (trx.offset[2]) { - part = &parts[curr_part++]; - part->name = "loader"; -- part->offset = trx.offset[i]; -+ part->offset = parser_trx_real_offset(mtd, trx.offset[i]); - i++; - } - - if (trx.offset[i]) { - part = &parts[curr_part++]; - part->name = "linux"; -- part->offset = trx.offset[i]; -+ part->offset = parser_trx_real_offset(mtd, trx.offset[i]); - i++; - } - - if (trx.offset[i]) { - part = &parts[curr_part++]; -- part->name = parser_trx_data_part_name(mtd, trx.offset[i]); -- part->offset = trx.offset[i]; -+ part->offset = parser_trx_real_offset(mtd, trx.offset[i]); -+ part->name = parser_trx_data_part_name(mtd, part->offset); - i++; - } - diff --git a/6.11/target/linux/generic/pending-6.11/432-mtd-bcm47xxpart-detect-T_Meter-partition.patch b/6.11/target/linux/generic/pending-6.11/432-mtd-bcm47xxpart-detect-T_Meter-partition.patch deleted file mode 100644 index 852654d9..00000000 --- a/6.11/target/linux/generic/pending-6.11/432-mtd-bcm47xxpart-detect-T_Meter-partition.patch +++ /dev/null @@ -1,37 +0,0 @@ -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Subject: mtd: bcm47xxpart: detect T_Meter partition - -It can be found on many Netgear devices. It consists of many 0x30 blocks -starting with 4D 54. - -Signed-off-by: Rafał Miłecki ---- - drivers/mtd/bcm47xxpart.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - ---- a/drivers/mtd/parsers/bcm47xxpart.c -+++ b/drivers/mtd/parsers/bcm47xxpart.c -@@ -35,6 +35,7 @@ - #define NVRAM_HEADER 0x48534C46 /* FLSH */ - #define POT_MAGIC1 0x54544f50 /* POTT */ - #define POT_MAGIC2 0x504f /* OP */ -+#define T_METER_MAGIC 0x4D540000 /* MT */ - #define ML_MAGIC1 0x39685a42 - #define ML_MAGIC2 0x26594131 - #define TRX_MAGIC 0x30524448 -@@ -178,6 +179,15 @@ static int bcm47xxpart_parse(struct mtd_ - MTD_WRITEABLE); - continue; - } -+ -+ /* T_Meter */ -+ if ((le32_to_cpu(buf[0x000 / 4]) & 0xFFFF0000) == T_METER_MAGIC && -+ (le32_to_cpu(buf[0x030 / 4]) & 0xFFFF0000) == T_METER_MAGIC && -+ (le32_to_cpu(buf[0x060 / 4]) & 0xFFFF0000) == T_METER_MAGIC) { -+ bcm47xxpart_add_part(&parts[curr_part++], "T_Meter", offset, -+ MTD_WRITEABLE); -+ continue; -+ } - - /* TRX */ - if (buf[0x000 / 4] == TRX_MAGIC) { diff --git a/6.11/target/linux/generic/pending-6.11/435-mtd-add-routerbootpart-parser-config.patch b/6.11/target/linux/generic/pending-6.11/435-mtd-add-routerbootpart-parser-config.patch deleted file mode 100644 index a42dcc86..00000000 --- a/6.11/target/linux/generic/pending-6.11/435-mtd-add-routerbootpart-parser-config.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 4437e01fb6bca63fccdba5d6c44888b0935885c2 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Thibaut=20VAR=C3=88NE?= -Date: Tue, 24 Mar 2020 11:45:07 +0100 -Subject: [PATCH] generic: routerboot partition build bits (5.4) -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This patch adds routerbootpart kernel build bits - -Signed-off-by: Thibaut VARÈNE ---- - drivers/mtd/parsers/Kconfig | 9 +++++++++ - drivers/mtd/parsers/Makefile | 1 + - 2 files changed, 10 insertions(+) - ---- a/drivers/mtd/parsers/Kconfig -+++ b/drivers/mtd/parsers/Kconfig -@@ -236,3 +236,12 @@ config MTD_SERCOMM_PARTS - partition map. This partition table contains real partition - offsets, which may differ from device to device depending on the - number and location of bad blocks on NAND. -+ -+config MTD_ROUTERBOOT_PARTS -+ tristate "RouterBoot flash partition parser" -+ depends on MTD && OF -+ help -+ MikroTik RouterBoot is implemented as a multi segment system on the -+ flash, some of which are fixed and some of which are located at -+ variable offsets. This parser handles both cases via properly -+ formatted DTS. ---- a/drivers/mtd/parsers/Makefile -+++ b/drivers/mtd/parsers/Makefile -@@ -17,3 +17,4 @@ obj-$(CONFIG_MTD_SERCOMM_PARTS) += scpa - obj-$(CONFIG_MTD_SHARPSL_PARTS) += sharpslpart.o - obj-$(CONFIG_MTD_REDBOOT_PARTS) += redboot.o - obj-$(CONFIG_MTD_QCOMSMEM_PARTS) += qcomsmempart.o -+obj-$(CONFIG_MTD_ROUTERBOOT_PARTS) += routerbootpart.o diff --git a/6.11/target/linux/generic/pending-6.11/450-dt-bindings-block-add-basic-bindings-for-block-devic.patch b/6.11/target/linux/generic/pending-6.11/450-dt-bindings-block-add-basic-bindings-for-block-devic.patch deleted file mode 100644 index 9089ce64..00000000 --- a/6.11/target/linux/generic/pending-6.11/450-dt-bindings-block-add-basic-bindings-for-block-devic.patch +++ /dev/null @@ -1,120 +0,0 @@ -From 3245921a87154bdfbe7a55d743ea62dd559a8fb0 Mon Sep 17 00:00:00 2001 -From: Daniel Golle -Date: Thu, 30 May 2024 03:13:09 +0100 -Subject: [PATCH 1/9] dt-bindings: block: add basic bindings for block devices - -Add bindings for block devices which are used to allow referencing -nvmem bits on them. - -Signed-off-by: Daniel Golle ---- - .../bindings/block/block-device.yaml | 22 ++++++++ - .../devicetree/bindings/block/partition.yaml | 51 +++++++++++++++++++ - .../devicetree/bindings/block/partitions.yaml | 20 ++++++++ - 3 files changed, 93 insertions(+) - create mode 100644 Documentation/devicetree/bindings/block/block-device.yaml - create mode 100644 Documentation/devicetree/bindings/block/partition.yaml - create mode 100644 Documentation/devicetree/bindings/block/partitions.yaml - ---- /dev/null -+++ b/Documentation/devicetree/bindings/block/block-device.yaml -@@ -0,0 +1,22 @@ -+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause -+%YAML 1.2 -+--- -+$id: http://devicetree.org/schemas/block/block-device.yaml# -+$schema: http://devicetree.org/meta-schemas/core.yaml# -+ -+title: block storage device -+ -+description: | -+ This binding is generic and describes a block-oriented storage device. -+ -+maintainers: -+ - Daniel Golle -+ -+properties: -+ partitions: -+ $ref: /schemas/block/partitions.yaml -+ -+ nvmem-layout: -+ $ref: /schemas/nvmem/layouts/nvmem-layout.yaml# -+ -+unevaluatedProperties: false ---- /dev/null -+++ b/Documentation/devicetree/bindings/block/partition.yaml -@@ -0,0 +1,51 @@ -+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause -+%YAML 1.2 -+--- -+$id: http://devicetree.org/schemas/block/partition.yaml# -+$schema: http://devicetree.org/meta-schemas/core.yaml# -+ -+title: Partition on a block device -+ -+description: | -+ This binding describes a partition on a block device. -+ Partitions may be matched by a combination of partition number, name, -+ and UUID. -+ -+maintainers: -+ - Daniel Golle -+ -+properties: -+ $nodename: -+ pattern: '^block-partition-.+$' -+ -+ partnum: -+ $ref: /schemas/types.yaml#/definitions/uint32 -+ description: -+ Matches partition by number if present. -+ -+ partname: -+ $ref: /schemas/types.yaml#/definitions/string -+ description: -+ Matches partition by PARTNAME if present. -+ -+ partuuid: -+ $ref: /schemas/types.yaml#/definitions/string -+ description: -+ Matches partition by PARTUUID if present. -+ -+ nvmem-layout: -+ $ref: /schemas/nvmem/layouts/nvmem-layout.yaml# -+ description: -+ This container may reference an NVMEM layout parser. -+ -+anyOf: -+ - required: -+ - partnum -+ -+ - required: -+ - partname -+ -+ - required: -+ - partuuid -+ -+unevaluatedProperties: false ---- /dev/null -+++ b/Documentation/devicetree/bindings/block/partitions.yaml -@@ -0,0 +1,20 @@ -+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause -+%YAML 1.2 -+--- -+$id: http://devicetree.org/schemas/block/partitions.yaml# -+$schema: http://devicetree.org/meta-schemas/core.yaml# -+ -+title: Partitions on block devices -+ -+description: | -+ This binding is generic and describes the content of the partitions container -+ node. -+ -+maintainers: -+ - Daniel Golle -+ -+patternProperties: -+ "^block-partition-.+$": -+ $ref: partition.yaml -+ -+unevaluatedProperties: false diff --git a/6.11/target/linux/generic/pending-6.11/452-block-add-support-for-notifications.patch b/6.11/target/linux/generic/pending-6.11/452-block-add-support-for-notifications.patch deleted file mode 100644 index c5a3391e..00000000 --- a/6.11/target/linux/generic/pending-6.11/452-block-add-support-for-notifications.patch +++ /dev/null @@ -1,145 +0,0 @@ -From e07ace307ce598847074a096f408bec0e3a392ed Mon Sep 17 00:00:00 2001 -From: Daniel Golle -Date: Thu, 30 May 2024 03:14:34 +0100 -Subject: [PATCH 3/9] block: add support for notifications - -Add notifier block to notify other subsystems about the addition or -removal of block devices. - -Signed-off-by: Daniel Golle ---- - block/Kconfig | 6 +++ - block/Makefile | 1 + - block/blk-notify.c | 88 ++++++++++++++++++++++++++++++++++++++++++ - include/linux/blkdev.h | 8 ++++ - 4 files changed, 103 insertions(+) - create mode 100644 block/blk-notify.c - ---- a/block/Kconfig -+++ b/block/Kconfig -@@ -208,6 +208,12 @@ config BLK_INLINE_ENCRYPTION_FALLBACK - by falling back to the kernel crypto API when inline - encryption hardware is not present. - -+config BLOCK_NOTIFIERS -+ bool "Enable support for notifications in block layer" -+ help -+ Enable this option to provide notifiers for other subsystems -+ upon addition or removal of block devices. -+ - source "block/partitions/Kconfig" - - config BLK_MQ_PCI ---- a/block/Makefile -+++ b/block/Makefile -@@ -40,3 +40,4 @@ obj-$(CONFIG_BLK_INLINE_ENCRYPTION) += b - blk-crypto-sysfs.o - obj-$(CONFIG_BLK_INLINE_ENCRYPTION_FALLBACK) += blk-crypto-fallback.o - obj-$(CONFIG_BLOCK_HOLDER_DEPRECATED) += holder.o -+obj-$(CONFIG_BLOCK_NOTIFIERS) += blk-notify.o ---- /dev/null -+++ b/block/blk-notify.c -@@ -0,0 +1,88 @@ -+// SPDX-License-Identifier: GPL-2.0-or-later -+/* -+ * Notifiers for addition and removal of block devices -+ * -+ * Copyright (c) 2024 Daniel Golle -+ */ -+ -+#include -+#include -+#include -+ -+#include "blk.h" -+ -+struct blk_device_list { -+ struct device *dev; -+ struct list_head list; -+}; -+ -+static RAW_NOTIFIER_HEAD(blk_notifier_list); -+static DEFINE_MUTEX(blk_notifier_lock); -+static LIST_HEAD(blk_devices); -+ -+void blk_register_notify(struct notifier_block *nb) -+{ -+ struct blk_device_list *existing_blkdev; -+ -+ mutex_lock(&blk_notifier_lock); -+ raw_notifier_chain_register(&blk_notifier_list, nb); -+ -+ list_for_each_entry(existing_blkdev, &blk_devices, list) -+ nb->notifier_call(nb, BLK_DEVICE_ADD, existing_blkdev->dev); -+ -+ mutex_unlock(&blk_notifier_lock); -+} -+EXPORT_SYMBOL_GPL(blk_register_notify); -+ -+void blk_unregister_notify(struct notifier_block *nb) -+{ -+ mutex_lock(&blk_notifier_lock); -+ raw_notifier_chain_unregister(&blk_notifier_list, nb); -+ mutex_unlock(&blk_notifier_lock); -+} -+EXPORT_SYMBOL_GPL(blk_unregister_notify); -+ -+static int blk_call_notifier_add(struct device *dev) -+{ -+ struct blk_device_list *new_blkdev; -+ -+ new_blkdev = kmalloc(sizeof(*new_blkdev), GFP_KERNEL); -+ if (!new_blkdev) -+ return -ENOMEM; -+ -+ new_blkdev->dev = dev; -+ mutex_lock(&blk_notifier_lock); -+ list_add_tail(&new_blkdev->list, &blk_devices); -+ raw_notifier_call_chain(&blk_notifier_list, BLK_DEVICE_ADD, dev); -+ mutex_unlock(&blk_notifier_lock); -+ -+ return 0; -+} -+ -+static void blk_call_notifier_remove(struct device *dev) -+{ -+ struct blk_device_list *old_blkdev, *tmp; -+ -+ mutex_lock(&blk_notifier_lock); -+ list_for_each_entry_safe(old_blkdev, tmp, &blk_devices, list) { -+ if (old_blkdev->dev != dev) -+ continue; -+ -+ list_del(&old_blkdev->list); -+ kfree(old_blkdev); -+ } -+ raw_notifier_call_chain(&blk_notifier_list, BLK_DEVICE_REMOVE, dev); -+ mutex_unlock(&blk_notifier_lock); -+} -+ -+static struct class_interface blk_notifications_bus_interface __refdata = { -+ .class = &block_class, -+ .add_dev = &blk_call_notifier_add, -+ .remove_dev = &blk_call_notifier_remove, -+}; -+ -+static int __init blk_notifications_init(void) -+{ -+ return class_interface_register(&blk_notifications_bus_interface); -+} -+device_initcall(blk_notifications_init); ---- a/include/linux/blkdev.h -+++ b/include/linux/blkdev.h -@@ -1564,4 +1564,12 @@ struct io_comp_batch { - - #define DEFINE_IO_COMP_BATCH(name) struct io_comp_batch name = { } - -+ -+#ifdef CONFIG_BLOCK_NOTIFIERS -+#define BLK_DEVICE_ADD 1 -+#define BLK_DEVICE_REMOVE 2 -+void blk_register_notify(struct notifier_block *nb); -+void blk_unregister_notify(struct notifier_block *nb); -+#endif -+ - #endif /* _LINUX_BLKDEV_H */ diff --git a/6.11/target/linux/generic/pending-6.11/453-block-add-new-genhd-flag-GENHD_FL_NVMEM.patch b/6.11/target/linux/generic/pending-6.11/453-block-add-new-genhd-flag-GENHD_FL_NVMEM.patch deleted file mode 100644 index 5997680e..00000000 --- a/6.11/target/linux/generic/pending-6.11/453-block-add-new-genhd-flag-GENHD_FL_NVMEM.patch +++ /dev/null @@ -1,29 +0,0 @@ -From f4487fa1cb7e55b3c17a33f41b9c9d66f4f853b7 Mon Sep 17 00:00:00 2001 -From: Daniel Golle -Date: Thu, 30 May 2024 03:14:49 +0100 -Subject: [PATCH 4/9] block: add new genhd flag GENHD_FL_NVMEM - -Add new flag to destinguish block devices which may act as an NVMEM -provider. - -Signed-off-by: Daniel Golle ---- - include/linux/blkdev.h | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/include/linux/blkdev.h -+++ b/include/linux/blkdev.h -@@ -80,11 +80,13 @@ struct partition_meta_info { - * ``GENHD_FL_NO_PART``: partition support is disabled. The kernel will not - * scan for partitions from add_disk, and users can't add partitions manually. - * -+ * ``GENHD_FL_NVMEM``: the block device should be considered as NVMEM provider. - */ - enum { - GENHD_FL_REMOVABLE = 1 << 0, - GENHD_FL_HIDDEN = 1 << 1, - GENHD_FL_NO_PART = 1 << 2, -+ GENHD_FL_NVMEM = 1 << 3, - }; - - enum { diff --git a/6.11/target/linux/generic/pending-6.11/454-nvmem-implement-block-NVMEM-provider.patch b/6.11/target/linux/generic/pending-6.11/454-nvmem-implement-block-NVMEM-provider.patch deleted file mode 100644 index 3c08f6dd..00000000 --- a/6.11/target/linux/generic/pending-6.11/454-nvmem-implement-block-NVMEM-provider.patch +++ /dev/null @@ -1,260 +0,0 @@ -From 9703951cdfe868b130e64d6122420396c2807be8 Mon Sep 17 00:00:00 2001 -From: Daniel Golle -Date: Thu, 30 May 2024 03:15:02 +0100 -Subject: [PATCH 5/9] nvmem: implement block NVMEM provider - -On embedded devices using an eMMC it is common that one or more partitions -on the eMMC are used to store MAC addresses and Wi-Fi calibration EEPROM -data. Allow referencing any block device or partition in Device Tree to -allow e.g. Ethernet and Wi-Fi drivers accessing them via the NVMEM layer. - -Signed-off-by: Daniel Golle ---- - drivers/nvmem/Kconfig | 11 +++ - drivers/nvmem/Makefile | 2 + - drivers/nvmem/block.c | 197 +++++++++++++++++++++++++++++++++++++++++ - 3 files changed, 210 insertions(+) - create mode 100644 drivers/nvmem/block.c - ---- a/drivers/nvmem/Kconfig -+++ b/drivers/nvmem/Kconfig -@@ -40,6 +40,17 @@ config NVMEM_APPLE_EFUSES - This driver can also be built as a module. If so, the module will - be called nvmem-apple-efuses. - -+config NVMEM_BLOCK -+ tristate "Block device NVMEM provider" -+ depends on BLOCK -+ depends on OF -+ depends on NVMEM -+ select BLOCK_NOTIFIERS -+ help -+ Allow block devices (or partitions) to act as NVMEM prodivers, -+ typically used with eMMC to store MAC addresses or Wi-Fi -+ calibration data on embedded devices. -+ - config NVMEM_BCM_OCOTP - tristate "Broadcom On-Chip OTP Controller support" - depends on ARCH_BCM_IPROC || COMPILE_TEST ---- a/drivers/nvmem/Makefile -+++ b/drivers/nvmem/Makefile -@@ -14,6 +14,8 @@ obj-$(CONFIG_NVMEM_APPLE_EFUSES) += nvme - nvmem-apple-efuses-y := apple-efuses.o - obj-$(CONFIG_NVMEM_BCM_OCOTP) += nvmem-bcm-ocotp.o - nvmem-bcm-ocotp-y := bcm-ocotp.o -+obj-$(CONFIG_NVMEM_BLOCK) += nvmem-block.o -+nvmem-block-y := block.o - obj-$(CONFIG_NVMEM_BRCM_NVRAM) += nvmem_brcm_nvram.o - nvmem_brcm_nvram-y := brcm_nvram.o - obj-$(CONFIG_NVMEM_IMX_IIM) += nvmem-imx-iim.o ---- /dev/null -+++ b/drivers/nvmem/block.c -@@ -0,0 +1,208 @@ -+// SPDX-License-Identifier: GPL-2.0-or-later -+/* -+ * block device NVMEM provider -+ * -+ * Copyright (c) 2024 Daniel Golle -+ * -+ * Useful on devices using a partition on an eMMC for MAC addresses or -+ * Wi-Fi calibration EEPROM data. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+/* List of all NVMEM devices */ -+static LIST_HEAD(nvmem_devices); -+static DEFINE_MUTEX(devices_mutex); -+ -+struct blk_nvmem { -+ struct nvmem_device *nvmem; -+ struct block_device *bdev; -+ struct list_head list; -+}; -+ -+static int blk_nvmem_reg_read(void *priv, unsigned int from, -+ void *val, size_t bytes) -+{ -+ unsigned long offs = from & ~PAGE_MASK, to_read; -+ pgoff_t f_index = from >> PAGE_SHIFT; -+ struct address_space *mapping; -+ struct blk_nvmem *bnv = priv; -+ size_t bytes_left = bytes; -+ struct folio *folio; -+ void *p; -+ int ret; -+ -+ if (!bnv->bdev) -+ return -ENODEV; -+ -+ if (!bnv->bdev->bd_disk) -+ return -EINVAL; -+ -+ if (!bnv->bdev->bd_disk->fops) -+ return -EIO; -+ -+ if (!bnv->bdev->bd_disk->fops->open) -+ return -EIO; -+ -+ ret = bnv->bdev->bd_disk->fops->open(bnv->bdev->bd_disk, BLK_OPEN_READ); -+ if (ret) -+ return ret; -+ -+ mapping = bnv->bdev->bd_inode->i_mapping; -+ -+ while (bytes_left) { -+ folio = read_mapping_folio(mapping, f_index++, NULL); -+ if (IS_ERR(folio)) { -+ ret = PTR_ERR(folio); -+ goto err_release_bdev; -+ } -+ to_read = min_t(unsigned long, bytes_left, PAGE_SIZE - offs); -+ p = folio_address(folio) + offset_in_folio(folio, offs); -+ memcpy(val, p, to_read); -+ offs = 0; -+ bytes_left -= to_read; -+ val += to_read; -+ folio_put(folio); -+ } -+ -+err_release_bdev: -+ bnv->bdev->bd_disk->fops->release(bnv->bdev->bd_disk); -+ -+ return ret; -+} -+ -+static int blk_nvmem_register(struct device *dev) -+{ -+ struct device_node *np = dev_of_node(dev); -+ struct block_device *bdev = dev_to_bdev(dev); -+ struct nvmem_config config = {}; -+ struct blk_nvmem *bnv; -+ -+ /* skip devices which do not have a device tree node */ -+ if (!np) -+ return 0; -+ -+ /* skip devices without an nvmem layout defined */ -+ if (!of_get_child_by_name(np, "nvmem-layout")) -+ return 0; -+ -+ /* -+ * skip devices which don't have GENHD_FL_NVMEM set -+ * -+ * This flag is used for mtdblock and ubiblock devices because -+ * both, MTD and UBI already implement their own NVMEM provider. -+ * To avoid registering multiple NVMEM providers for the same -+ * device node, don't register the block NVMEM provider for them. -+ */ -+ if (!(bdev->bd_disk->flags & GENHD_FL_NVMEM)) -+ return 0; -+ -+ /* -+ * skip block device too large to be represented as NVMEM devices -+ * which are using an 'int' as address -+ */ -+ if (bdev_nr_bytes(bdev) > INT_MAX) -+ return -EFBIG; -+ -+ bnv = kzalloc(sizeof(struct blk_nvmem), GFP_KERNEL); -+ if (!bnv) -+ return -ENOMEM; -+ -+ config.id = NVMEM_DEVID_NONE; -+ config.dev = &bdev->bd_device; -+ config.name = dev_name(&bdev->bd_device); -+ config.owner = THIS_MODULE; -+ config.priv = bnv; -+ config.reg_read = blk_nvmem_reg_read; -+ config.size = bdev_nr_bytes(bdev); -+ config.word_size = 1; -+ config.stride = 1; -+ config.read_only = true; -+ config.root_only = true; -+ config.ignore_wp = true; -+ config.of_node = to_of_node(dev->fwnode); -+ -+ bnv->bdev = bdev; -+ bnv->nvmem = nvmem_register(&config); -+ if (IS_ERR(bnv->nvmem)) { -+ dev_err_probe(&bdev->bd_device, PTR_ERR(bnv->nvmem), -+ "Failed to register NVMEM device\n"); -+ -+ kfree(bnv); -+ return PTR_ERR(bnv->nvmem); -+ } -+ -+ mutex_lock(&devices_mutex); -+ list_add_tail(&bnv->list, &nvmem_devices); -+ mutex_unlock(&devices_mutex); -+ -+ return 0; -+} -+ -+static void blk_nvmem_unregister(struct device *dev) -+{ -+ struct block_device *bdev = dev_to_bdev(dev); -+ struct blk_nvmem *bnv_c, *bnv = NULL; -+ -+ mutex_lock(&devices_mutex); -+ list_for_each_entry(bnv_c, &nvmem_devices, list) { -+ if (bnv_c->bdev == bdev) { -+ bnv = bnv_c; -+ break; -+ } -+ } -+ -+ if (!bnv) { -+ mutex_unlock(&devices_mutex); -+ return; -+ } -+ -+ list_del(&bnv->list); -+ mutex_unlock(&devices_mutex); -+ nvmem_unregister(bnv->nvmem); -+ kfree(bnv); -+} -+ -+static int blk_nvmem_handler(struct notifier_block *this, unsigned long code, void *obj) -+{ -+ struct device *dev = (struct device *)obj; -+ -+ switch (code) { -+ case BLK_DEVICE_ADD: -+ return blk_nvmem_register(dev); -+ case BLK_DEVICE_REMOVE: -+ blk_nvmem_unregister(dev); -+ break; -+ default: -+ return -EINVAL; -+ } -+ -+ return 0; -+} -+ -+static struct notifier_block blk_nvmem_notifier = { -+ .notifier_call = blk_nvmem_handler, -+}; -+ -+static int __init blk_nvmem_init(void) -+{ -+ blk_register_notify(&blk_nvmem_notifier); -+ -+ return 0; -+} -+ -+static void __exit blk_nvmem_exit(void) -+{ -+ blk_unregister_notify(&blk_nvmem_notifier); -+} -+ -+module_init(blk_nvmem_init); -+module_exit(blk_nvmem_exit); -+ -+MODULE_LICENSE("GPL"); -+MODULE_AUTHOR("Daniel Golle "); -+MODULE_DESCRIPTION("block device NVMEM provider"); diff --git a/6.11/target/linux/generic/pending-6.11/455-dt-bindings-mmc-mmc-card-add-block-device-nodes.patch b/6.11/target/linux/generic/pending-6.11/455-dt-bindings-mmc-mmc-card-add-block-device-nodes.patch deleted file mode 100644 index 74e6c821..00000000 --- a/6.11/target/linux/generic/pending-6.11/455-dt-bindings-mmc-mmc-card-add-block-device-nodes.patch +++ /dev/null @@ -1,74 +0,0 @@ -From f7ec19b34d1b7e934a58ceb102369bbd30b2631d Mon Sep 17 00:00:00 2001 -From: Daniel Golle -Date: Thu, 30 May 2024 03:15:11 +0100 -Subject: [PATCH 6/9] dt-bindings: mmc: mmc-card: add block device nodes - -Add nodes representing the block devices exposed by an MMC device -including an example involving nvmem-cells. - -Signed-off-by: Daniel Golle ---- - .../devicetree/bindings/mmc/mmc-card.yaml | 45 +++++++++++++++++++ - 1 file changed, 45 insertions(+) - ---- a/Documentation/devicetree/bindings/mmc/mmc-card.yaml -+++ b/Documentation/devicetree/bindings/mmc/mmc-card.yaml -@@ -26,6 +26,18 @@ properties: - Use this to indicate that the mmc-card has a broken hpi - implementation, and that hpi should not be used. - -+ block: -+ $ref: /schemas/block/block-device.yaml# -+ description: -+ Represents the block storage provided by an SD card or the -+ main hardware partition of an eMMC. -+ -+patternProperties: -+ '^boot[0-9]+': -+ $ref: /schemas/block/block-device.yaml# -+ description: -+ Represents a boot hardware partition on an eMMC. -+ - required: - - compatible - - reg -@@ -42,6 +54,39 @@ examples: - compatible = "mmc-card"; - reg = <0>; - broken-hpi; -+ -+ block { -+ partitions { -+ cal_data: block-partition-rf { -+ partnum = <3>; -+ partname = "rf"; -+ -+ nvmem-layout { -+ compatible = "fixed-layout"; -+ #address-cells = <1>; -+ #size-cells = <1>; -+ -+ eeprom@0 { -+ reg = <0x0 0x1000>; -+ }; -+ }; -+ }; -+ }; -+ }; -+ -+ boot1 { -+ nvmem-layout { -+ compatible = "fixed-layout"; -+ #address-cells = <1>; -+ #size-cells = <1>; -+ -+ macaddr: macaddr@a { -+ compatible = "mac-base"; -+ reg = <0xa 0x6>; -+ #nvmem-cell-cells = <1>; -+ }; -+ }; -+ }; - }; - }; - diff --git a/6.11/target/linux/generic/pending-6.11/456-mmc-core-set-card-fwnode_handle.patch b/6.11/target/linux/generic/pending-6.11/456-mmc-core-set-card-fwnode_handle.patch deleted file mode 100644 index 2ee170d4..00000000 --- a/6.11/target/linux/generic/pending-6.11/456-mmc-core-set-card-fwnode_handle.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 043c4f88476cc0f29c9bf82a8a516f58d848e1cd Mon Sep 17 00:00:00 2001 -From: Daniel Golle -Date: Thu, 30 May 2024 03:15:25 +0100 -Subject: [PATCH 7/9] mmc: core: set card fwnode_handle - -Set fwnode in case it isn't set yet and of_node is present. - -Signed-off-by: Daniel Golle ---- - drivers/mmc/core/bus.c | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/drivers/mmc/core/bus.c -+++ b/drivers/mmc/core/bus.c -@@ -364,6 +364,8 @@ int mmc_add_card(struct mmc_card *card) - - mmc_add_card_debugfs(card); - card->dev.of_node = mmc_of_find_child_device(card->host, 0); -+ if (card->dev.of_node && !card->dev.fwnode) -+ card->dev.fwnode = &card->dev.of_node->fwnode; - - device_enable_async_suspend(&card->dev); - diff --git a/6.11/target/linux/generic/pending-6.11/457-mmc-block-set-fwnode-of-disk-devices.patch b/6.11/target/linux/generic/pending-6.11/457-mmc-block-set-fwnode-of-disk-devices.patch deleted file mode 100644 index b45a0ebb..00000000 --- a/6.11/target/linux/generic/pending-6.11/457-mmc-block-set-fwnode-of-disk-devices.patch +++ /dev/null @@ -1,37 +0,0 @@ -From ef3e38fec26901b71975d7e810a2df6b8bd54a8e Mon Sep 17 00:00:00 2001 -From: Daniel Golle -Date: Thu, 30 May 2024 03:15:36 +0100 -Subject: [PATCH 8/9] mmc: block: set fwnode of disk devices - -Set fwnode of disk devices to 'block', 'boot0' and 'boot1' subnodes of -the mmc-card. This is done in preparation for having the eMMC act as -NVMEM provider. - -Signed-off-by: Daniel Golle ---- - drivers/mmc/core/block.c | 7 +++++++ - 1 file changed, 7 insertions(+) - ---- a/drivers/mmc/core/block.c -+++ b/drivers/mmc/core/block.c -@@ -2463,6 +2463,7 @@ static struct mmc_blk_data *mmc_blk_allo - int area_type, - unsigned int part_type) - { -+ struct fwnode_handle *fwnode; - struct mmc_blk_data *md; - int devidx, ret; - char cap_str[10]; -@@ -2559,6 +2560,12 @@ static struct mmc_blk_data *mmc_blk_allo - - blk_queue_write_cache(md->queue.queue, cache_enabled, fua_enabled); - -+ fwnode = device_get_named_child_node(subname ? md->parent->parent : -+ md->parent, -+ subname ? subname : "block"); -+ if (fwnode) -+ device_set_node(disk_to_dev(md->disk), fwnode); -+ - string_get_size((u64)size, 512, STRING_UNITS_2, - cap_str, sizeof(cap_str)); - pr_info("%s: %s %s %s%s\n", diff --git a/6.11/target/linux/generic/pending-6.11/458-mmc-block-set-GENHD_FL_NVMEM.patch b/6.11/target/linux/generic/pending-6.11/458-mmc-block-set-GENHD_FL_NVMEM.patch deleted file mode 100644 index 713401f1..00000000 --- a/6.11/target/linux/generic/pending-6.11/458-mmc-block-set-GENHD_FL_NVMEM.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 7903b50441000365a6fe5badb39735889f562252 Mon Sep 17 00:00:00 2001 -From: Daniel Golle -Date: Thu, 30 May 2024 03:15:46 +0100 -Subject: [PATCH 9/9] mmc: block: set GENHD_FL_NVMEM - -Set flag to consider MMC block devices as NVMEM providers. - -Signed-off-by: Daniel Golle ---- - drivers/mmc/core/block.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/drivers/mmc/core/block.c -+++ b/drivers/mmc/core/block.c -@@ -2516,6 +2516,7 @@ static struct mmc_blk_data *mmc_blk_allo - md->disk->major = MMC_BLOCK_MAJOR; - md->disk->minors = perdev_minors; - md->disk->first_minor = devidx * perdev_minors; -+ md->disk->flags = GENHD_FL_NVMEM; - md->disk->fops = &mmc_bdops; - md->disk->private_data = md; - md->parent = parent; diff --git a/6.11/target/linux/generic/pending-6.11/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch b/6.11/target/linux/generic/pending-6.11/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch deleted file mode 100644 index 2435133f..00000000 --- a/6.11/target/linux/generic/pending-6.11/460-mtd-cfi_cmdset_0002-no-erase_suspend.patch +++ /dev/null @@ -1,25 +0,0 @@ -From: Felix Fietkau -Subject: kernel: disable cfi cmdset 0002 erase suspend - -on some platforms, erase suspend leads to data corruption and lockups when write -ops collide with erase ops. this has been observed on the buffalo wzr-hp-g300nh. -rather than play whack-a-mole with a hard to reproduce issue on a variety of devices, -simply disable erase suspend, as it will usually not produce any useful gain on -the small filesystems used on embedded hardware. - -Signed-off-by: Felix Fietkau ---- - drivers/mtd/chips/cfi_cmdset_0002.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/mtd/chips/cfi_cmdset_0002.c -+++ b/drivers/mtd/chips/cfi_cmdset_0002.c -@@ -906,7 +906,7 @@ static int get_chip(struct map_info *map - return 0; - - case FL_ERASING: -- if (!cfip || !(cfip->EraseSuspend & (0x1|0x2)) || -+ if (1 /* no suspend */ || !cfip || !(cfip->EraseSuspend & (0x1|0x2)) || - !(mode == FL_READY || mode == FL_POINT || - (mode == FL_WRITING && (cfip->EraseSuspend & 0x2)))) - goto sleep; diff --git a/6.11/target/linux/generic/pending-6.11/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch b/6.11/target/linux/generic/pending-6.11/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch deleted file mode 100644 index 059d9673..00000000 --- a/6.11/target/linux/generic/pending-6.11/461-mtd-cfi_cmdset_0002-add-buffer-write-cmd-timeout.patch +++ /dev/null @@ -1,17 +0,0 @@ -From: George Kashperko -Subject: Issue map read after Write Buffer Load command to ensure chip is ready to receive data. - -Signed-off-by: George Kashperko ---- - drivers/mtd/chips/cfi_cmdset_0002.c | 1 + - 1 file changed, 1 insertion(+) ---- a/drivers/mtd/chips/cfi_cmdset_0002.c -+++ b/drivers/mtd/chips/cfi_cmdset_0002.c -@@ -2050,6 +2050,7 @@ static int __xipram do_write_buffer(stru - - /* Write Buffer Load */ - map_write(map, CMD(0x25), cmd_adr); -+ (void) map_read(map, cmd_adr); - - chip->state = FL_WRITING_TO_BUFFER; - diff --git a/6.11/target/linux/generic/pending-6.11/465-m25p80-mx-disable-software-protection.patch b/6.11/target/linux/generic/pending-6.11/465-m25p80-mx-disable-software-protection.patch deleted file mode 100644 index 09a508b2..00000000 --- a/6.11/target/linux/generic/pending-6.11/465-m25p80-mx-disable-software-protection.patch +++ /dev/null @@ -1,18 +0,0 @@ -From: Felix Fietkau -Subject: Disable software protection bits for Macronix flashes. - -Signed-off-by: Felix Fietkau ---- - drivers/mtd/spi-nor/spi-nor.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/drivers/mtd/spi-nor/macronix.c -+++ b/drivers/mtd/spi-nor/macronix.c -@@ -114,6 +114,7 @@ static int macronix_nor_late_init(struct - { - if (!nor->params->set_4byte_addr_mode) - nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode_en4b_ex4b; -+ nor->flags |= SNOR_F_HAS_LOCK; - - return 0; - } diff --git a/6.11/target/linux/generic/pending-6.11/491-ubi-auto-create-ubiblock-device-for-rootfs.patch b/6.11/target/linux/generic/pending-6.11/491-ubi-auto-create-ubiblock-device-for-rootfs.patch deleted file mode 100644 index 6081d1d9..00000000 --- a/6.11/target/linux/generic/pending-6.11/491-ubi-auto-create-ubiblock-device-for-rootfs.patch +++ /dev/null @@ -1,77 +0,0 @@ -From: Daniel Golle -Subject: ubi: auto-create ubiblock device for rootfs - -Signed-off-by: Daniel Golle ---- - drivers/mtd/ubi/block.c | 42 ++++++++++++++++++++++++++++++++++++++++++ - 1 file changed, 42 insertions(+) - ---- a/drivers/mtd/ubi/block.c -+++ b/drivers/mtd/ubi/block.c -@@ -570,10 +570,47 @@ match_volume_desc(struct ubi_volume_info - return true; - } - -+#define UBIFS_NODE_MAGIC 0x06101831 -+static inline int ubi_vol_is_ubifs(struct ubi_volume_desc *desc) -+{ -+ int ret; -+ uint32_t magic_of, magic; -+ ret = ubi_read(desc, 0, (char *)&magic_of, 0, 4); -+ if (ret) -+ return 0; -+ magic = le32_to_cpu(magic_of); -+ return magic == UBIFS_NODE_MAGIC; -+} -+ -+static void __init ubiblock_create_auto_rootfs(struct ubi_volume_info *vi) -+{ -+ int ret, is_ubifs; -+ struct ubi_volume_desc *desc; -+ -+ if (strcmp(vi->name, "rootfs") && -+ strcmp(vi->name, "fit")) -+ return; -+ -+ desc = ubi_open_volume(vi->ubi_num, vi->vol_id, UBI_READONLY); -+ if (IS_ERR(desc)) -+ return; -+ -+ is_ubifs = ubi_vol_is_ubifs(desc); -+ ubi_close_volume(desc); -+ if (is_ubifs) -+ return; -+ -+ ret = ubiblock_create(vi); -+ if (ret) -+ pr_err("UBI error: block: can't add '%s' volume, err=%d\n", -+ vi->name, ret); -+} -+ - static void - ubiblock_create_from_param(struct ubi_volume_info *vi) - { - int i, ret = 0; -+ bool got_param = false; - struct ubiblock_param *p; - - /* -@@ -586,6 +623,7 @@ ubiblock_create_from_param(struct ubi_vo - if (!match_volume_desc(vi, p->name, p->ubi_num, p->vol_id)) - continue; - -+ got_param = true; - ret = ubiblock_create(vi); - if (ret) { - pr_err( -@@ -594,6 +632,10 @@ ubiblock_create_from_param(struct ubi_vo - } - break; - } -+ -+ /* auto-attach "rootfs" volume if existing and non-ubifs */ -+ if (!got_param && IS_ENABLED(CONFIG_MTD_ROOTFS_ROOT_DEV)) -+ ubiblock_create_auto_rootfs(vi); - } - - static int ubiblock_notify(struct notifier_block *nb, diff --git a/6.11/target/linux/generic/pending-6.11/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch b/6.11/target/linux/generic/pending-6.11/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch deleted file mode 100644 index 297789e5..00000000 --- a/6.11/target/linux/generic/pending-6.11/492-try-auto-mounting-ubi0-rootfs-in-init-do_mounts.c.patch +++ /dev/null @@ -1,54 +0,0 @@ -From: Daniel Golle -Subject: try auto-mounting ubi0:rootfs in init/do_mounts.c - -Signed-off-by: Daniel Golle ---- - init/do_mounts.c | 26 +++++++++++++++++++++++++- - 1 file changed, 25 insertions(+), 1 deletion(-) - ---- a/init/do_mounts.c -+++ b/init/do_mounts.c -@@ -248,7 +248,30 @@ retry: - out: - put_page(page); - } -- -+ -+#ifdef CONFIG_MTD_ROOTFS_ROOT_DEV -+static int __init mount_ubi_rootfs(void) -+{ -+ int flags = MS_SILENT; -+ int err, tried = 0; -+ -+ while (tried < 2) { -+ err = do_mount_root("ubi0:rootfs", "ubifs", flags, \ -+ root_mount_data); -+ switch (err) { -+ case -EACCES: -+ flags |= MS_RDONLY; -+ tried++; -+ break; -+ default: -+ return err; -+ } -+ } -+ -+ return -EINVAL; -+} -+#endif -+ - #ifdef CONFIG_ROOT_NFS - - #define NFSROOT_TIMEOUT_MIN 5 -@@ -385,6 +408,11 @@ static inline void mount_block_root(char - - void __init mount_root(char *root_device_name) - { -+#ifdef CONFIG_MTD_ROOTFS_ROOT_DEV -+ if (!mount_ubi_rootfs()) -+ return; -+#endif -+ - switch (ROOT_DEV) { - case Root_NFS: - mount_nfs_root(); diff --git a/6.11/target/linux/generic/pending-6.11/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch b/6.11/target/linux/generic/pending-6.11/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch deleted file mode 100644 index 367bf659..00000000 --- a/6.11/target/linux/generic/pending-6.11/493-ubi-set-ROOT_DEV-to-ubiblock-rootfs-if-unset.patch +++ /dev/null @@ -1,34 +0,0 @@ -From: Daniel Golle -Subject: ubi: set ROOT_DEV to ubiblock "rootfs" if unset - -Signed-off-by: Daniel Golle ---- - drivers/mtd/ubi/block.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - ---- a/drivers/mtd/ubi/block.c -+++ b/drivers/mtd/ubi/block.c -@@ -41,6 +41,7 @@ - #include - #include - #include -+#include - - #include "ubi-media.h" - #include "ubi.h" -@@ -428,6 +429,15 @@ int ubiblock_create(struct ubi_volume_in - dev_info(disk_to_dev(dev->gd), "created from ubi%d:%d(%s)", - dev->ubi_num, dev->vol_id, vi->name); - mutex_unlock(&devices_mutex); -+ -+ if (!strcmp(vi->name, "rootfs") && -+ IS_ENABLED(CONFIG_MTD_ROOTFS_ROOT_DEV) && -+ ROOT_DEV == 0) { -+ pr_notice("ubiblock: device ubiblock%d_%d (%s) set to be root filesystem\n", -+ dev->ubi_num, dev->vol_id, vi->name); -+ ROOT_DEV = MKDEV(gd->major, gd->first_minor); -+ } -+ - return 0; - - out_remove_minor: diff --git a/6.11/target/linux/generic/pending-6.11/494-mtd-ubi-add-EOF-marker-support.patch b/6.11/target/linux/generic/pending-6.11/494-mtd-ubi-add-EOF-marker-support.patch deleted file mode 100644 index fc481462..00000000 --- a/6.11/target/linux/generic/pending-6.11/494-mtd-ubi-add-EOF-marker-support.patch +++ /dev/null @@ -1,60 +0,0 @@ -From: Gabor Juhos -Subject: mtd: add EOF marker support to the UBI layer - -Signed-off-by: Gabor Juhos ---- - drivers/mtd/ubi/attach.c | 25 ++++++++++++++++++++++--- - drivers/mtd/ubi/ubi.h | 1 + - 2 files changed, 23 insertions(+), 3 deletions(-) - ---- a/drivers/mtd/ubi/attach.c -+++ b/drivers/mtd/ubi/attach.c -@@ -926,6 +926,13 @@ static bool vol_ignored(int vol_id) - #endif - } - -+static bool ec_hdr_has_eof(struct ubi_ec_hdr *ech) -+{ -+ return ech->padding1[0] == 'E' && -+ ech->padding1[1] == 'O' && -+ ech->padding1[2] == 'F'; -+} -+ - /** - * scan_peb - scan and process UBI headers of a PEB. - * @ubi: UBI device description object -@@ -958,9 +965,21 @@ static int scan_peb(struct ubi_device *u - return 0; - } - -- err = ubi_io_read_ec_hdr(ubi, pnum, ech, 0); -- if (err < 0) -- return err; -+ if (!ai->eof_found) { -+ err = ubi_io_read_ec_hdr(ubi, pnum, ech, 0); -+ if (err < 0) -+ return err; -+ -+ if (ec_hdr_has_eof(ech)) { -+ pr_notice("UBI: EOF marker found, PEBs from %d will be erased\n", -+ pnum); -+ ai->eof_found = true; -+ } -+ } -+ -+ if (ai->eof_found) -+ err = UBI_IO_FF_BITFLIPS; -+ - switch (err) { - case 0: - break; ---- a/drivers/mtd/ubi/ubi.h -+++ b/drivers/mtd/ubi/ubi.h -@@ -780,6 +780,7 @@ struct ubi_attach_info { - int mean_ec; - uint64_t ec_sum; - int ec_count; -+ bool eof_found; - struct kmem_cache *aeb_slab_cache; - struct ubi_ec_hdr *ech; - struct ubi_vid_io_buf *vidb; diff --git a/6.11/target/linux/generic/pending-6.11/496-dt-bindings-add-bindings-for-mtd-concat-devices.patch b/6.11/target/linux/generic/pending-6.11/496-dt-bindings-add-bindings-for-mtd-concat-devices.patch deleted file mode 100644 index 01f3b9ec..00000000 --- a/6.11/target/linux/generic/pending-6.11/496-dt-bindings-add-bindings-for-mtd-concat-devices.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 5734c6669fba7ddb5ef491ccff7159d15dba0b59 Mon Sep 17 00:00:00 2001 -From: Bernhard Frauendienst -Date: Wed, 5 Sep 2018 01:32:51 +0200 -Subject: [PATCH 496/497] dt-bindings: add bindings for mtd-concat devices - -Document virtual mtd-concat device bindings. - -Signed-off-by: Bernhard Frauendienst ---- - .../devicetree/bindings/mtd/mtd-concat.txt | 36 +++++++++++++++++++ - 1 file changed, 36 insertions(+) - create mode 100644 Documentation/devicetree/bindings/mtd/mtd-concat.txt - ---- /dev/null -+++ b/Documentation/devicetree/bindings/mtd/mtd-concat.txt -@@ -0,0 +1,36 @@ -+Virtual MTD concat device -+ -+Requires properties: -+- devices: list of phandles to mtd nodes that should be concatenated -+ -+Example: -+ -+&spi { -+ flash0: flash@0 { -+ ... -+ }; -+ flash1: flash@1 { -+ ... -+ }; -+}; -+ -+flash { -+ compatible = "mtd-concat"; -+ -+ devices = <&flash0 &flash1>; -+ -+ partitions { -+ compatible = "fixed-partitions"; -+ -+ partition@0 { -+ label = "boot"; -+ reg = <0x0000000 0x0040000>; -+ read-only; -+ }; -+ -+ partition@40000 { -+ label = "firmware"; -+ reg = <0x0040000 0x1fc0000>; -+ }; -+ } -+} diff --git a/6.11/target/linux/generic/pending-6.11/497-mtd-mtdconcat-add-dt-driver-for-concat-devices.patch b/6.11/target/linux/generic/pending-6.11/497-mtd-mtdconcat-add-dt-driver-for-concat-devices.patch deleted file mode 100644 index e0cbc450..00000000 --- a/6.11/target/linux/generic/pending-6.11/497-mtd-mtdconcat-add-dt-driver-for-concat-devices.patch +++ /dev/null @@ -1,216 +0,0 @@ -From e53f712d8eac71f54399b61038ccf87d2cee99d7 Mon Sep 17 00:00:00 2001 -From: Bernhard Frauendienst -Date: Sat, 25 Aug 2018 12:35:22 +0200 -Subject: [PATCH 497/497] mtd: mtdconcat: add dt driver for concat devices - -Some mtd drivers like physmap variants have support for concatenating -multiple mtd devices, but there is no generic way to define such a -concat device from within the device tree. - -This is useful for some SoC boards that use multiple flash chips as -memory banks of a single mtd device, with partitions spanning chip -borders. - -This commit adds a driver for creating virtual mtd-concat devices. They -must have a compatible = "mtd-concat" line, and define a list of devices -to concat in the 'devices' property, for example: - -flash { - compatible = "mtd-concat"; - - devices = <&flash0 &flash1>; - - partitions { - ... - }; -}; - -The driver is added to the very end of the mtd Makefile to increase the -likelyhood of all child devices already being loaded at the time of -probing, preventing unnecessary deferred probes. - -Signed-off-by: Bernhard Frauendienst ---- - drivers/mtd/Kconfig | 2 + - drivers/mtd/Makefile | 3 + - drivers/mtd/composite/Kconfig | 12 +++ - drivers/mtd/composite/Makefile | 6 ++ - drivers/mtd/composite/virt_concat.c | 128 ++++++++++++++++++++++++++++ - 5 files changed, 151 insertions(+) - create mode 100644 drivers/mtd/composite/Kconfig - create mode 100644 drivers/mtd/composite/Makefile - create mode 100644 drivers/mtd/composite/virt_concat.c - ---- a/drivers/mtd/Kconfig -+++ b/drivers/mtd/Kconfig -@@ -241,4 +241,6 @@ source "drivers/mtd/ubi/Kconfig" - - source "drivers/mtd/hyperbus/Kconfig" - -+source "drivers/mtd/composite/Kconfig" -+ - endif # MTD ---- a/drivers/mtd/Makefile -+++ b/drivers/mtd/Makefile -@@ -33,3 +33,6 @@ obj-y += chips/ lpddr/ maps/ devices/ n - obj-$(CONFIG_MTD_SPI_NOR) += spi-nor/ - obj-$(CONFIG_MTD_UBI) += ubi/ - obj-$(CONFIG_MTD_HYPERBUS) += hyperbus/ -+ -+# Composite drivers must be loaded last -+obj-y += composite/ ---- /dev/null -+++ b/drivers/mtd/composite/Kconfig -@@ -0,0 +1,12 @@ -+menu "Composite MTD device drivers" -+ depends on MTD!=n -+ -+config MTD_VIRT_CONCAT -+ tristate "Virtual concat MTD device" -+ help -+ This driver allows creation of a virtual MTD concat device, which -+ concatenates multiple underlying MTD devices to a single device. -+ This is required by some SoC boards where multiple memory banks are -+ used as one device with partitions spanning across device boundaries. -+ -+endmenu ---- /dev/null -+++ b/drivers/mtd/composite/Makefile -@@ -0,0 +1,6 @@ -+# SPDX-License-Identifier: GPL-2.0 -+# -+# linux/drivers/mtd/composite/Makefile -+# -+ -+obj-$(CONFIG_MTD_VIRT_CONCAT) += virt_concat.o ---- /dev/null -+++ b/drivers/mtd/composite/virt_concat.c -@@ -0,0 +1,128 @@ -+// SPDX-License-Identifier: GPL-2.0+ -+/* -+ * Virtual concat MTD device driver -+ * -+ * Copyright (C) 2018 Bernhard Frauendienst -+ * Author: Bernhard Frauendienst, kernel@nospam.obeliks.de -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+/* -+ * struct of_virt_concat - platform device driver data. -+ * @cmtd the final mtd_concat device -+ * @num_devices the number of devices in @devices -+ * @devices points to an array of devices already loaded -+ */ -+struct of_virt_concat { -+ struct mtd_info *cmtd; -+ int num_devices; -+ struct mtd_info **devices; -+}; -+ -+static int virt_concat_remove(struct platform_device *pdev) -+{ -+ struct of_virt_concat *info; -+ int i; -+ -+ info = platform_get_drvdata(pdev); -+ if (!info) -+ return 0; -+ -+ // unset data for when this is called after a probe error -+ platform_set_drvdata(pdev, NULL); -+ -+ if (info->cmtd) { -+ mtd_device_unregister(info->cmtd); -+ mtd_concat_destroy(info->cmtd); -+ } -+ -+ if (info->devices) { -+ for (i = 0; i < info->num_devices; i++) -+ put_mtd_device(info->devices[i]); -+ } -+ -+ return 0; -+} -+ -+static int virt_concat_probe(struct platform_device *pdev) -+{ -+ struct device_node *node = pdev->dev.of_node; -+ struct of_phandle_iterator it; -+ struct of_virt_concat *info; -+ struct mtd_info *mtd; -+ int err = 0, count; -+ -+ count = of_count_phandle_with_args(node, "devices", NULL); -+ if (count <= 0) -+ return -EINVAL; -+ -+ info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL); -+ if (!info) -+ return -ENOMEM; -+ info->devices = devm_kcalloc(&pdev->dev, count, -+ sizeof(*(info->devices)), GFP_KERNEL); -+ if (!info->devices) { -+ err = -ENOMEM; -+ goto err_remove; -+ } -+ -+ platform_set_drvdata(pdev, info); -+ -+ of_for_each_phandle(&it, err, node, "devices", NULL, 0) { -+ mtd = of_get_mtd_device_by_node(it.node); -+ if (IS_ERR(mtd)) { -+ of_node_put(it.node); -+ err = -EPROBE_DEFER; -+ goto err_remove; -+ } -+ -+ info->devices[info->num_devices++] = mtd; -+ } -+ -+ info->cmtd = mtd_concat_create(info->devices, info->num_devices, -+ dev_name(&pdev->dev)); -+ if (!info->cmtd) { -+ err = -ENXIO; -+ goto err_remove; -+ } -+ -+ info->cmtd->dev.parent = &pdev->dev; -+ mtd_set_of_node(info->cmtd, node); -+ mtd_device_register(info->cmtd, NULL, 0); -+ -+ return 0; -+ -+err_remove: -+ virt_concat_remove(pdev); -+ -+ return err; -+} -+ -+static const struct of_device_id virt_concat_of_match[] = { -+ { .compatible = "mtd-concat", }, -+ { /* sentinel */ } -+}; -+MODULE_DEVICE_TABLE(of, virt_concat_of_match); -+ -+static struct platform_driver virt_concat_driver = { -+ .probe = virt_concat_probe, -+ .remove = virt_concat_remove, -+ .driver = { -+ .name = "virt-mtdconcat", -+ .of_match_table = virt_concat_of_match, -+ }, -+}; -+ -+module_platform_driver(virt_concat_driver); -+ -+MODULE_LICENSE("GPL v2"); -+MODULE_AUTHOR("Bernhard Frauendienst "); -+MODULE_DESCRIPTION("Virtual concat MTD device driver"); diff --git a/6.11/target/linux/generic/pending-6.11/499-mtd-spi-nor-disable-16-bit-sr-for-macronix.patch b/6.11/target/linux/generic/pending-6.11/499-mtd-spi-nor-disable-16-bit-sr-for-macronix.patch deleted file mode 100644 index ea580a90..00000000 --- a/6.11/target/linux/generic/pending-6.11/499-mtd-spi-nor-disable-16-bit-sr-for-macronix.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 245224608b5368c10407da07557e546743d3c489 Mon Sep 17 00:00:00 2001 -From: Nick Hainke -Date: Mon, 27 Dec 2021 09:33:13 +0100 -Subject: [PATCH 2/2] mtd: spi-nor: disable 16-bit-sr for macronix - -Macronix flash chips seem to consist of only one status register. -These chips will not work with the "16-bit Write Status (01h) Command". -Disable SNOR_F_HAS_16BIT_SR for all Macronix chips. - -Tested with MX25L6405D. - -Fixes: 39d1e3340c73 ("mtd: spi-nor: Fix clearing of QE bit on -lock()/unlock()") - -Signed-off-by: David Bauer -Signed-off-by: Nick Hainke ---- - drivers/mtd/spi-nor/macronix.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/drivers/mtd/spi-nor/macronix.c -+++ b/drivers/mtd/spi-nor/macronix.c -@@ -115,6 +115,7 @@ static int macronix_nor_late_init(struct - { - if (!nor->params->set_4byte_addr_mode) - nor->params->set_4byte_addr_mode = spi_nor_set_4byte_addr_mode_en4b_ex4b; -+ nor->flags &= ~SNOR_F_HAS_16BIT_SR; - nor->flags |= SNOR_F_HAS_LOCK; - - return 0; diff --git a/6.11/target/linux/generic/pending-6.11/500-fs_cdrom_dependencies.patch b/6.11/target/linux/generic/pending-6.11/500-fs_cdrom_dependencies.patch deleted file mode 100644 index 7c143584..00000000 --- a/6.11/target/linux/generic/pending-6.11/500-fs_cdrom_dependencies.patch +++ /dev/null @@ -1,52 +0,0 @@ -From af7b91bcecce0eae24e90acd35d96ecee73e1407 Mon Sep 17 00:00:00 2001 -From: OpenWrt community -Date: Wed, 13 Jul 2022 12:21:15 +0200 -Subject: [PATCH] fs: add cdrom dependency - ---- - fs/hfs/Kconfig | 1 + - fs/hfsplus/Kconfig | 1 + - fs/isofs/Kconfig | 1 + - fs/udf/Kconfig | 1 + - 4 files changed, 4 insertions(+) - ---- a/fs/hfs/Kconfig -+++ b/fs/hfs/Kconfig -@@ -2,6 +2,7 @@ - config HFS_FS - tristate "Apple Macintosh file system support" - depends on BLOCK -+ select CDROM - select BUFFER_HEAD - select NLS - select LEGACY_DIRECT_IO ---- a/fs/hfsplus/Kconfig -+++ b/fs/hfsplus/Kconfig -@@ -2,6 +2,7 @@ - config HFSPLUS_FS - tristate "Apple Extended HFS file system support" - depends on BLOCK -+ select CDROM - select BUFFER_HEAD - select NLS - select NLS_UTF8 ---- a/fs/isofs/Kconfig -+++ b/fs/isofs/Kconfig -@@ -1,6 +1,7 @@ - # SPDX-License-Identifier: GPL-2.0-only - config ISO9660_FS - tristate "ISO 9660 CDROM file system support" -+ select CDROM - select BUFFER_HEAD - help - This is the standard file system used on CD-ROMs. It was previously ---- a/fs/udf/Kconfig -+++ b/fs/udf/Kconfig -@@ -1,6 +1,7 @@ - # SPDX-License-Identifier: GPL-2.0-only - config UDF_FS - tristate "UDF file system support" -+ select CDROM - select BUFFER_HEAD - select CRC_ITU_T - select NLS diff --git a/6.11/target/linux/generic/pending-6.11/510-block-add-uImage.FIT-subimage-block-driver.patch b/6.11/target/linux/generic/pending-6.11/510-block-add-uImage.FIT-subimage-block-driver.patch deleted file mode 100644 index 26ef29ca..00000000 --- a/6.11/target/linux/generic/pending-6.11/510-block-add-uImage.FIT-subimage-block-driver.patch +++ /dev/null @@ -1,756 +0,0 @@ -From 6173a065cb395d4a9528c4e49810af127db68141 Mon Sep 17 00:00:00 2001 -From: Daniel Golle -Date: Wed, 16 Nov 2022 12:49:52 +0000 -Subject: [PATCH 1/2] block: add uImage.FIT subimage block driver - -Add a small block driver which exposes filesystem sub-images contained -in U-Boot uImage.FIT images as block devices. - -The uImage.FIT image has to be stored directly on a block device or -partition, MTD device or partition, or UBI volume. - -The driver is intended for systems using the U-Boot bootloader and -uses the root device hint left by the bootloader (or the user) in -the 'chosen' section of the device-tree. - -Example: -/dts-v1/; -/ { - chosen { - rootdisk = <&mmc0_part3>; - }; -}; - -Signed-off-by: Daniel Golle ---- - MAINTAINERS | 6 + - drivers/block/Kconfig | 12 + - drivers/block/Makefile | 2 + - drivers/block/fitblk.c | 658 ++++++++++++++++++++++++++++++++++++ - drivers/block/open | 4 + - include/uapi/linux/fitblk.h | 10 + - 6 files changed, 692 insertions(+) - create mode 100644 drivers/block/fitblk.c - create mode 100644 drivers/block/open - create mode 100644 include/uapi/linux/fitblk.h - ---- a/MAINTAINERS -+++ b/MAINTAINERS -@@ -22014,6 +22014,12 @@ F: Documentation/filesystems/ubifs-authe - F: Documentation/filesystems/ubifs.rst - F: fs/ubifs/ - -+U-BOOT UIMAGE.FIT PARSER -+M: Daniel Golle -+L: linux-block@vger.kernel.org -+S: Maintained -+F: drivers/block/fitblk.c -+ - UBLK USERSPACE BLOCK DRIVER - M: Ming Lei - L: linux-block@vger.kernel.org ---- a/drivers/block/Kconfig -+++ b/drivers/block/Kconfig -@@ -354,6 +354,18 @@ config VIRTIO_BLK - This is the virtual block driver for virtio. It can be used with - QEMU based VMMs (like KVM or Xen). Say Y or M. - -+config UIMAGE_FIT_BLK -+ bool "uImage.FIT block driver" -+ help -+ This driver allows using filesystems contained in uImage.FIT images -+ by mapping them as block devices. -+ -+ It can currently not be built as a module due to libfdt symbols not -+ being exported. -+ -+ Say Y if you want to mount filesystems sub-images of a uImage.FIT -+ stored in a block device partition, mtdblock or ubiblock device. -+ - config BLK_DEV_RBD - tristate "Rados block device (RBD)" - depends on INET && BLOCK ---- a/drivers/block/Makefile -+++ b/drivers/block/Makefile -@@ -39,4 +39,6 @@ obj-$(CONFIG_BLK_DEV_NULL_BLK) += null_b - - obj-$(CONFIG_BLK_DEV_UBLK) += ublk_drv.o - -+obj-$(CONFIG_UIMAGE_FIT_BLK) += fitblk.o -+ - swim_mod-y := swim.o swim_asm.o ---- /dev/null -+++ b/drivers/block/fitblk.c -@@ -0,0 +1,659 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+/* -+ * uImage.FIT virtual block device driver. -+ * -+ * Copyright (C) 2023 Daniel Golle -+ * Copyright (C) 2007 Nick Piggin -+ * Copyright (C) 2007 Novell Inc. -+ * -+ * Initially derived from drivers/block/brd.c which is in parts derived from -+ * drivers/block/rd.c, and drivers/block/loop.c, copyright of their respective -+ * owners. -+ * -+ * uImage.FIT headers extracted from Das U-Boot -+ * (C) Copyright 2008 Semihalf -+ * (C) Copyright 2000-2005 -+ * Wolfgang Denk, DENX Software Engineering, wd@denx.de. -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define FIT_DEVICE_PREFIX "fit" -+ -+/* maximum number of pages used for the uImage.FIT index structure */ -+#define FIT_MAX_PAGES 1024 -+ -+/* minimum free sectors to map as read-write "remainder" volume */ -+#define MIN_FREE_SECT 16 -+ -+/* maximum number of mapped loadables */ -+#define MAX_FIT_LOADABLES 16 -+ -+/* constants for uImage.FIT structrure traversal */ -+#define FIT_IMAGES_PATH "/images" -+#define FIT_CONFS_PATH "/configurations" -+ -+/* hash/signature/key node */ -+#define FIT_HASH_NODENAME "hash" -+#define FIT_ALGO_PROP "algo" -+#define FIT_VALUE_PROP "value" -+#define FIT_IGNORE_PROP "uboot-ignore" -+#define FIT_SIG_NODENAME "signature" -+#define FIT_KEY_REQUIRED "required" -+#define FIT_KEY_HINT "key-name-hint" -+ -+/* cipher node */ -+#define FIT_CIPHER_NODENAME "cipher" -+#define FIT_ALGO_PROP "algo" -+ -+/* image node */ -+#define FIT_DATA_PROP "data" -+#define FIT_DATA_POSITION_PROP "data-position" -+#define FIT_DATA_OFFSET_PROP "data-offset" -+#define FIT_DATA_SIZE_PROP "data-size" -+#define FIT_TIMESTAMP_PROP "timestamp" -+#define FIT_DESC_PROP "description" -+#define FIT_ARCH_PROP "arch" -+#define FIT_TYPE_PROP "type" -+#define FIT_OS_PROP "os" -+#define FIT_COMP_PROP "compression" -+#define FIT_ENTRY_PROP "entry" -+#define FIT_LOAD_PROP "load" -+ -+/* configuration node */ -+#define FIT_KERNEL_PROP "kernel" -+#define FIT_FILESYSTEM_PROP "filesystem" -+#define FIT_RAMDISK_PROP "ramdisk" -+#define FIT_FDT_PROP "fdt" -+#define FIT_LOADABLE_PROP "loadables" -+#define FIT_DEFAULT_PROP "default" -+#define FIT_SETUP_PROP "setup" -+#define FIT_FPGA_PROP "fpga" -+#define FIT_FIRMWARE_PROP "firmware" -+#define FIT_STANDALONE_PROP "standalone" -+ -+/* fitblk driver data */ -+static const char *_fitblk_claim_ptr = "I belong to fitblk"; -+static const char *ubootver; -+struct device_node *rootdisk; -+static struct platform_device *pdev; -+static LIST_HEAD(fitblk_devices); -+static DEFINE_MUTEX(devices_mutex); -+refcount_t num_devs; -+ -+struct fitblk { -+ struct platform_device *pdev; -+ struct block_device *lower_bdev; -+ sector_t start_sect; -+ struct gendisk *disk; -+ struct work_struct remove_work; -+ struct list_head list; -+ bool dead; -+}; -+ -+static int fitblk_open(struct gendisk *disk, fmode_t mode) -+{ -+ struct fitblk *fitblk = disk->private_data; -+ -+ if (fitblk->dead) -+ return -ENOENT; -+ -+ return 0; -+} -+ -+static void fitblk_release(struct gendisk *disk) -+{ -+ return; -+} -+ -+static void fitblk_submit_bio(struct bio *orig_bio) -+{ -+ struct bio *bio = orig_bio; -+ struct fitblk *fitblk = bio->bi_bdev->bd_disk->private_data; -+ -+ if (fitblk->dead) -+ return; -+ -+ /* mangle bio and re-submit */ -+ while (bio) { -+ bio->bi_iter.bi_sector += fitblk->start_sect; -+ bio->bi_bdev = fitblk->lower_bdev; -+ bio = bio->bi_next; -+ } -+ submit_bio(orig_bio); -+} -+ -+static void fitblk_remove(struct fitblk *fitblk) -+{ -+ blk_mark_disk_dead(fitblk->disk); -+ mutex_lock(&devices_mutex); -+ fitblk->dead = true; -+ list_del(&fitblk->list); -+ mutex_unlock(&devices_mutex); -+ -+ schedule_work(&fitblk->remove_work); -+} -+ -+static int fitblk_ioctl(struct block_device *bdev, fmode_t mode, -+ unsigned int cmd, unsigned long arg) -+{ -+ struct fitblk *fitblk = bdev->bd_disk->private_data; -+ -+ if (!capable(CAP_SYS_ADMIN)) -+ return -EACCES; -+ -+ if (fitblk->dead) -+ return -ENOENT; -+ -+ switch (cmd) { -+ case FITBLK_RELEASE: -+ fitblk_remove(fitblk); -+ break; -+ default: -+ return -EINVAL; -+ } -+ -+ return 0; -+} -+ -+static const struct block_device_operations fitblk_fops = { -+ .owner = THIS_MODULE, -+ .ioctl = fitblk_ioctl, -+ .open = fitblk_open, -+ .release = fitblk_release, -+ .submit_bio = fitblk_submit_bio, -+}; -+ -+static void fitblk_purge(struct work_struct *work) -+{ -+ struct fitblk *fitblk = container_of(work, struct fitblk, remove_work); -+ -+ //del_gendisk(fitblk->disk); // causes crash, not doing it doesn't matter -+ refcount_dec(&num_devs); -+ platform_device_del(fitblk->pdev); -+ platform_device_put(fitblk->pdev); -+ -+ if (refcount_dec_if_one(&num_devs)) { -+ sysfs_remove_link(&pdev->dev.kobj, "lower_dev"); -+ blkdev_put(fitblk->lower_bdev, &_fitblk_claim_ptr); -+ } -+ -+ kfree(fitblk); -+} -+ -+static int add_fit_subimage_device(struct block_device *lower_bdev, -+ unsigned int slot, sector_t start_sect, -+ sector_t nr_sect, bool readonly) -+{ -+ struct fitblk *fitblk; -+ struct gendisk *disk; -+ int err; -+ -+ mutex_lock(&devices_mutex); -+ if (!refcount_inc_not_zero(&num_devs)) -+ return -EBADF; -+ -+ fitblk = kzalloc(sizeof(struct fitblk), GFP_KERNEL); -+ if (!fitblk) { -+ err = -ENOMEM; -+ goto out_unlock; -+ } -+ -+ fitblk->lower_bdev = lower_bdev; -+ fitblk->start_sect = start_sect; -+ INIT_WORK(&fitblk->remove_work, fitblk_purge); -+ -+ disk = blk_alloc_disk(NUMA_NO_NODE); -+ if (!disk) { -+ err = -ENOMEM; -+ goto out_free_fitblk; -+ } -+ -+ disk->first_minor = 0; -+ disk->flags = lower_bdev->bd_disk->flags | GENHD_FL_NO_PART; -+ disk->fops = &fitblk_fops; -+ disk->private_data = fitblk; -+ if (readonly) { -+ set_disk_ro(disk, 1); -+ snprintf(disk->disk_name, sizeof(disk->disk_name), FIT_DEVICE_PREFIX "%u", slot); -+ } else { -+ strcpy(disk->disk_name, FIT_DEVICE_PREFIX "rw"); -+ } -+ -+ set_capacity(disk, nr_sect); -+ -+ disk->queue->queue_flags = lower_bdev->bd_disk->queue->queue_flags; -+ memcpy(&disk->queue->limits, &lower_bdev->bd_disk->queue->limits, -+ sizeof(struct queue_limits)); -+ -+ fitblk->disk = disk; -+ fitblk->pdev = platform_device_alloc(disk->disk_name, PLATFORM_DEVID_NONE); -+ if (!fitblk->pdev) { -+ err = -ENOMEM; -+ goto out_cleanup_disk; -+ } -+ -+ fitblk->pdev->dev.parent = &pdev->dev; -+ err = platform_device_add(fitblk->pdev); -+ if (err) -+ goto out_put_pdev; -+ -+ err = device_add_disk(&fitblk->pdev->dev, disk, NULL); -+ if (err) -+ goto out_del_pdev; -+ -+ if (!ROOT_DEV) -+ ROOT_DEV = disk->part0->bd_dev; -+ -+ list_add_tail(&fitblk->list, &fitblk_devices); -+ -+ mutex_unlock(&devices_mutex); -+ -+ return 0; -+ -+out_del_pdev: -+ platform_device_del(fitblk->pdev); -+out_put_pdev: -+ platform_device_put(fitblk->pdev); -+out_cleanup_disk: -+ put_disk(disk); -+out_free_fitblk: -+ kfree(fitblk); -+out_unlock: -+ refcount_dec(&num_devs); -+ mutex_unlock(&devices_mutex); -+ return err; -+} -+ -+static void fitblk_mark_dead(struct block_device *bdev, bool surprise) -+{ -+ struct list_head *n, *tmp; -+ struct fitblk *fitblk; -+ -+ mutex_lock(&devices_mutex); -+ list_for_each_safe(n, tmp, &fitblk_devices) { -+ fitblk = list_entry(n, struct fitblk, list); -+ if (fitblk->lower_bdev != bdev) -+ continue; -+ -+ fitblk->dead = true; -+ list_del(&fitblk->list); -+ /* removal needs to be deferred to avoid deadlock */ -+ schedule_work(&fitblk->remove_work); -+ } -+ mutex_unlock(&devices_mutex); -+} -+ -+static const struct blk_holder_ops fitblk_hops = { -+ .mark_dead = fitblk_mark_dead, -+}; -+ -+static int parse_fit_on_dev(struct device *dev) -+{ -+ struct block_device *bdev; -+ struct address_space *mapping; -+ struct folio *folio; -+ pgoff_t f_index = 0; -+ size_t bytes_left, bytes_to_copy; -+ void *pre_fit, *fit, *fit_c; -+ u64 dsize, dsectors, imgmaxsect = 0; -+ u32 size, image_pos, image_len; -+ const __be32 *image_offset_be, *image_len_be, *image_pos_be; -+ int ret = 0, node, images, config; -+ const char *image_name, *image_type, *image_description, -+ *config_default, *config_description, *config_loadables; -+ u32 image_name_len, image_type_len, image_description_len, -+ bootconf_len, config_default_len, config_description_len, -+ config_loadables_len; -+ sector_t start_sect, nr_sects; -+ struct device_node *np = NULL; -+ const char *bootconf_c; -+ const char *loadable; -+ char *bootconf = NULL, *bootconf_term; -+ bool found; -+ int loadables_rem_len, loadable_len; -+ u16 loadcnt; -+ unsigned int slot = 0; -+ -+ /* Exclusive open the block device to receive holder notifications */ -+ bdev = blkdev_get_by_dev(dev->devt, BLK_OPEN_READ, &_fitblk_claim_ptr, &fitblk_hops); -+ if (!bdev) -+ return -ENODEV; -+ -+ if (IS_ERR(bdev)) -+ return PTR_ERR(bdev); -+ -+ mapping = bdev->bd_inode->i_mapping; -+ -+ /* map first page */ -+ folio = read_mapping_folio(mapping, f_index++, NULL); -+ if (IS_ERR(folio)) { -+ ret = PTR_ERR(folio); -+ goto out_blkdev; -+ } -+ pre_fit = folio_address(folio) + offset_in_folio(folio, 0); -+ -+ /* uImage.FIT is based on flattened device tree structure */ -+ if (fdt_check_header(pre_fit)) { -+ ret = -EINVAL; -+ folio_put(folio); -+ goto out_blkdev; -+ } -+ -+ size = fdt_totalsize(pre_fit); -+ -+ if (size > PAGE_SIZE * FIT_MAX_PAGES) { -+ ret = -EOPNOTSUPP; -+ folio_put(folio); -+ goto out_blkdev; -+ } -+ -+ /* acquire disk size */ -+ dsectors = bdev_nr_sectors(bdev); -+ dsize = dsectors << SECTOR_SHIFT; -+ -+ /* abort if FIT structure is larger than disk or partition size */ -+ if (size >= dsize) { -+ ret = -EFBIG; -+ folio_put(folio); -+ goto out_blkdev; -+ } -+ -+ fit = kmalloc(size, GFP_KERNEL); -+ if (!fit) { -+ ret = -ENOMEM; -+ folio_put(folio); -+ goto out_blkdev; -+ } -+ -+ bytes_left = size; -+ fit_c = fit; -+ while (bytes_left > 0) { -+ bytes_to_copy = min_t(size_t, bytes_left, -+ folio_size(folio) - offset_in_folio(folio, 0)); -+ memcpy(fit_c, pre_fit, bytes_to_copy); -+ fit_c += bytes_to_copy; -+ bytes_left -= bytes_to_copy; -+ if (bytes_left) { -+ folio_put(folio); -+ folio = read_mapping_folio(mapping, f_index++, NULL); -+ if (IS_ERR(folio)) { -+ ret = PTR_ERR(folio); -+ goto out_blkdev; -+ }; -+ pre_fit = folio_address(folio) + offset_in_folio(folio, 0); -+ } -+ } -+ folio_put(folio); -+ -+ /* set boot config node name U-Boot may have added to the device tree */ -+ np = of_find_node_by_path("/chosen"); -+ if (np) { -+ bootconf_c = of_get_property(np, "u-boot,bootconf", &bootconf_len); -+ if (bootconf_c && bootconf_len) -+ bootconf = kmemdup_nul(bootconf_c, bootconf_len, GFP_KERNEL); -+ } -+ -+ if (bootconf) { -+ bootconf_term = strchr(bootconf, '#'); -+ if (bootconf_term) -+ *bootconf_term = '\0'; -+ } -+ -+ /* find configuration path in uImage.FIT */ -+ config = fdt_path_offset(fit, FIT_CONFS_PATH); -+ if (config < 0) { -+ pr_err("FIT: Cannot find %s node: %d\n", -+ FIT_CONFS_PATH, config); -+ ret = -ENOENT; -+ goto out_bootconf; -+ } -+ -+ /* get default configuration node name */ -+ config_default = -+ fdt_getprop(fit, config, FIT_DEFAULT_PROP, &config_default_len); -+ -+ /* make sure we got either default or selected boot config node name */ -+ if (!config_default && !bootconf) { -+ pr_err("FIT: Cannot find default configuration\n"); -+ ret = -ENOENT; -+ goto out_bootconf; -+ } -+ -+ /* find selected boot config node, fallback on default config node */ -+ node = fdt_subnode_offset(fit, config, bootconf ?: config_default); -+ if (node < 0) { -+ pr_err("FIT: Cannot find %s node: %d\n", -+ bootconf ?: config_default, node); -+ ret = -ENOENT; -+ goto out_bootconf; -+ } -+ -+ pr_info("FIT: Detected U-Boot %s\n", ubootver); -+ -+ /* get selected configuration data */ -+ config_description = -+ fdt_getprop(fit, node, FIT_DESC_PROP, &config_description_len); -+ config_loadables = fdt_getprop(fit, node, FIT_LOADABLE_PROP, -+ &config_loadables_len); -+ -+ pr_info("FIT: %s configuration: \"%.*s\"%s%.*s%s\n", -+ bootconf ? "Selected" : "Default", -+ bootconf ? bootconf_len : config_default_len, -+ bootconf ?: config_default, -+ config_description ? " (" : "", -+ config_description ? config_description_len : 0, -+ config_description ?: "", -+ config_description ? ")" : ""); -+ -+ if (!config_loadables || !config_loadables_len) { -+ pr_err("FIT: No loadables configured in \"%s\"\n", -+ bootconf ?: config_default); -+ ret = -ENOENT; -+ goto out_bootconf; -+ } -+ -+ /* get images path in uImage.FIT */ -+ images = fdt_path_offset(fit, FIT_IMAGES_PATH); -+ if (images < 0) { -+ pr_err("FIT: Cannot find %s node: %d\n", FIT_IMAGES_PATH, images); -+ ret = -EINVAL; -+ goto out_bootconf; -+ } -+ -+ /* iterate over images in uImage.FIT */ -+ fdt_for_each_subnode(node, fit, images) { -+ image_name = fdt_get_name(fit, node, &image_name_len); -+ image_type = fdt_getprop(fit, node, FIT_TYPE_PROP, &image_type_len); -+ image_offset_be = fdt_getprop(fit, node, FIT_DATA_OFFSET_PROP, NULL); -+ image_pos_be = fdt_getprop(fit, node, FIT_DATA_POSITION_PROP, NULL); -+ image_len_be = fdt_getprop(fit, node, FIT_DATA_SIZE_PROP, NULL); -+ -+ if (!image_name || !image_type || !image_len_be || -+ !image_name_len || !image_type_len) -+ continue; -+ -+ image_len = be32_to_cpu(*image_len_be); -+ if (!image_len) -+ continue; -+ -+ if (image_offset_be) -+ image_pos = be32_to_cpu(*image_offset_be) + size; -+ else if (image_pos_be) -+ image_pos = be32_to_cpu(*image_pos_be); -+ else -+ continue; -+ -+ image_description = fdt_getprop(fit, node, FIT_DESC_PROP, -+ &image_description_len); -+ -+ pr_info("FIT: %16s sub-image 0x%08x..0x%08x \"%.*s\"%s%.*s%s\n", -+ image_type, image_pos, image_pos + image_len - 1, -+ image_name_len, image_name, image_description ? " (" : "", -+ image_description ? image_description_len : 0, -+ image_description ?: "", image_description ? ") " : ""); -+ -+ /* only 'filesystem' images should be mapped as partitions */ -+ if (strncmp(image_type, FIT_FILESYSTEM_PROP, image_type_len)) -+ continue; -+ -+ /* check if sub-image is part of configured loadables */ -+ found = false; -+ loadable = config_loadables; -+ loadables_rem_len = config_loadables_len; -+ for (loadcnt = 0; loadables_rem_len > 1 && -+ loadcnt < MAX_FIT_LOADABLES; ++loadcnt) { -+ loadable_len = -+ strnlen(loadable, loadables_rem_len - 1) + 1; -+ loadables_rem_len -= loadable_len; -+ if (!strncmp(image_name, loadable, loadable_len)) { -+ found = true; -+ break; -+ } -+ loadable += loadable_len; -+ } -+ if (!found) -+ continue; -+ -+ if (image_pos % (1 << PAGE_SHIFT)) { -+ dev_err(dev, "FIT: image %.*s start not aligned to page boundaries, skipping\n", -+ image_name_len, image_name); -+ continue; -+ } -+ -+ if (image_len % (1 << PAGE_SHIFT)) { -+ dev_err(dev, "FIT: sub-image %.*s end not aligned to page boundaries, skipping\n", -+ image_name_len, image_name); -+ continue; -+ } -+ -+ start_sect = image_pos >> SECTOR_SHIFT; -+ nr_sects = image_len >> SECTOR_SHIFT; -+ imgmaxsect = max_t(sector_t, imgmaxsect, start_sect + nr_sects); -+ -+ if (start_sect + nr_sects > dsectors) { -+ dev_err(dev, "FIT: sub-image %.*s disk access beyond EOD\n", -+ image_name_len, image_name); -+ continue; -+ } -+ -+ if (!slot) { -+ ret = sysfs_create_link_nowarn(&pdev->dev.kobj, bdev_kobj(bdev), "lower_dev"); -+ if (ret && ret != -EEXIST) -+ goto out_bootconf; -+ -+ ret = 0; -+ } -+ -+ add_fit_subimage_device(bdev, slot++, start_sect, nr_sects, true); -+ } -+ -+ if (!found || !slot) -+ goto out_bootconf; -+ -+ dev_info(dev, "mapped %u uImage.FIT filesystem sub-image%s as /dev/fit%s%u%s\n", -+ slot, (slot > 1)?"s":"", (slot > 1)?"[0...":"", slot - 1, -+ (slot > 1)?"]":""); -+ -+ /* in case uImage.FIT is stored in a partition, map the remaining space */ -+ if (!bdev->bd_read_only && bdev_is_partition(bdev) && -+ (imgmaxsect + MIN_FREE_SECT) < dsectors) { -+ add_fit_subimage_device(bdev, slot++, imgmaxsect, -+ dsectors - imgmaxsect, false); -+ dev_info(dev, "mapped remaing space as /dev/fitrw\n"); -+ } -+ -+out_bootconf: -+ kfree(bootconf); -+ kfree(fit); -+out_blkdev: -+ if (!found || ret) -+ blkdev_put(bdev, &_fitblk_claim_ptr); -+ -+ return ret; -+} -+ -+static int fitblk_match_of_node(struct device *dev, const void *np) -+{ -+ int ret; -+ -+ ret = device_match_of_node(dev, np); -+ if (ret) -+ return ret; -+ -+ /* -+ * To match ubiblock and mtdblock devices by their parent ubi -+ * or mtd device, also consider block device parent -+ */ -+ if (!dev->parent) -+ return 0; -+ -+ return device_match_of_node(dev->parent, np); -+} -+ -+static int fitblk_probe(struct platform_device *pdev) -+{ -+ struct device *dev; -+ -+ dev = class_find_device(&block_class, NULL, rootdisk, fitblk_match_of_node); -+ if (!dev) -+ return -EPROBE_DEFER; -+ -+ return parse_fit_on_dev(dev); -+} -+ -+static struct platform_driver fitblk_driver = { -+ .probe = fitblk_probe, -+ .driver = { -+ .name = "fitblk", -+ .owner = THIS_MODULE, -+ }, -+}; -+ -+static int __init fitblk_init(void) -+{ -+ /* detect U-Boot firmware */ -+ ubootver = of_get_property(of_chosen, "u-boot,version", NULL); -+ if (!ubootver) -+ return 0; -+ -+ /* parse 'rootdisk' property phandle */ -+ rootdisk = of_parse_phandle(of_chosen, "rootdisk", 0); -+ if (!rootdisk) -+ return 0; -+ -+ if (platform_driver_register(&fitblk_driver)) -+ return -ENODEV; -+ -+ refcount_set(&num_devs, 1); -+ pdev = platform_device_register_simple("fitblk", -1, NULL, 0); -+ if (IS_ERR(pdev)) -+ return PTR_ERR(pdev); -+ -+ return 0; -+} -+device_initcall(fitblk_init); ---- /dev/null -+++ b/include/uapi/linux/fitblk.h -@@ -0,0 +1,10 @@ -+/* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */ -+#ifndef _UAPI_LINUX_FITBLK_H -+#define _UAPI_LINUX_FITBLK_H -+ -+/* -+ * IOCTL commands --- we will commandeer 0x46 ('F') -+ */ -+#define FITBLK_RELEASE 0x4600 -+ -+#endif /* _UAPI_LINUX_FITBLK_H */ diff --git a/6.11/target/linux/generic/pending-6.11/511-init-bypass-device-lookup-for-dev-fit-rootfs.patch b/6.11/target/linux/generic/pending-6.11/511-init-bypass-device-lookup-for-dev-fit-rootfs.patch deleted file mode 100644 index b2b7f5eb..00000000 --- a/6.11/target/linux/generic/pending-6.11/511-init-bypass-device-lookup-for-dev-fit-rootfs.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 5ede3f8aed9a1a579bf7304142600d1f3500add9 Mon Sep 17 00:00:00 2001 -From: Daniel Golle -Date: Mon, 12 Jun 2023 03:58:42 +0100 -Subject: [PATCH 2/2] init: bypass device lookup for /dev/fit* rootfs - -Allow 'rootwait' as /dev/fit* can show up late if the underlaying -device is probed late. - -Signed-off-by: Daniel Golle ---- - init/do_mounts.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- a/init/do_mounts.c -+++ b/init/do_mounts.c -@@ -463,7 +463,8 @@ static dev_t __init parse_root_device(ch - int error; - dev_t dev; - -- if (!strncmp(root_device_name, "mtd", 3) || -+ if (!strncmp(root_device_name, "fit", 3) || -+ !strncmp(root_device_name, "mtd", 3) || - !strncmp(root_device_name, "ubi", 3)) - return Root_Generic; - if (strcmp(root_device_name, "/dev/nfs") == 0) diff --git a/6.11/target/linux/generic/pending-6.11/532-jffs2_eofdetect.patch b/6.11/target/linux/generic/pending-6.11/532-jffs2_eofdetect.patch deleted file mode 100644 index 744fbd0e..00000000 --- a/6.11/target/linux/generic/pending-6.11/532-jffs2_eofdetect.patch +++ /dev/null @@ -1,65 +0,0 @@ -From: Felix Fietkau -Subject: fs: jffs2: EOF marker - -Signed-off-by: Felix Fietkau ---- - fs/jffs2/build.c | 10 ++++++++++ - fs/jffs2/scan.c | 21 +++++++++++++++++++-- - 2 files changed, 29 insertions(+), 2 deletions(-) - ---- a/fs/jffs2/build.c -+++ b/fs/jffs2/build.c -@@ -117,6 +117,16 @@ static int jffs2_build_filesystem(struct - dbg_fsbuild("scanned flash completely\n"); - jffs2_dbg_dump_block_lists_nolock(c); - -+ if (c->flags & (1 << 7)) { -+ printk("%s(): unlocking the mtd device... ", __func__); -+ mtd_unlock(c->mtd, 0, c->mtd->size); -+ printk("done.\n"); -+ -+ printk("%s(): erasing all blocks after the end marker... ", __func__); -+ jffs2_erase_pending_blocks(c, -1); -+ printk("done.\n"); -+ } -+ - dbg_fsbuild("pass 1 starting\n"); - c->flags |= JFFS2_SB_FLAG_BUILDING; - /* Now scan the directory tree, increasing nlink according to every dirent found. */ ---- a/fs/jffs2/scan.c -+++ b/fs/jffs2/scan.c -@@ -148,8 +148,14 @@ int jffs2_scan_medium(struct jffs2_sb_in - /* reset summary info for next eraseblock scan */ - jffs2_sum_reset_collected(s); - -- ret = jffs2_scan_eraseblock(c, jeb, buf_size?flashbuf:(flashbuf+jeb->offset), -- buf_size, s); -+ if (c->flags & (1 << 7)) { -+ if (mtd_block_isbad(c->mtd, jeb->offset)) -+ ret = BLK_STATE_BADBLOCK; -+ else -+ ret = BLK_STATE_ALLFF; -+ } else -+ ret = jffs2_scan_eraseblock(c, jeb, buf_size?flashbuf:(flashbuf+jeb->offset), -+ buf_size, s); - - if (ret < 0) - goto out; -@@ -567,6 +573,17 @@ full_scan: - return err; - } - -+ if ((buf[0] == 0xde) && -+ (buf[1] == 0xad) && -+ (buf[2] == 0xc0) && -+ (buf[3] == 0xde)) { -+ /* end of filesystem. erase everything after this point */ -+ printk("%s(): End of filesystem marker found at 0x%x\n", __func__, jeb->offset); -+ c->flags |= (1 << 7); -+ -+ return BLK_STATE_ALLFF; -+ } -+ - /* We temporarily use 'ofs' as a pointer into the buffer/jeb */ - ofs = 0; - max_ofs = EMPTY_SCAN_SIZE(c->sector_size); diff --git a/6.11/target/linux/generic/pending-6.11/600-netfilter_conntrack_flush.patch b/6.11/target/linux/generic/pending-6.11/600-netfilter_conntrack_flush.patch deleted file mode 100644 index f6c37832..00000000 --- a/6.11/target/linux/generic/pending-6.11/600-netfilter_conntrack_flush.patch +++ /dev/null @@ -1,90 +0,0 @@ -From: Felix Fietkau -Subject: netfilter: add support for flushing conntrack via /proc - -lede-commit 8193bbe59a74d34d6a26d4a8cb857b1952905314 -Signed-off-by: Felix Fietkau ---- - net/netfilter/nf_conntrack_standalone.c | 59 ++++++++++++++++++++++++++++++++- - 1 file changed, 58 insertions(+), 1 deletion(-) - ---- a/net/netfilter/nf_conntrack_standalone.c -+++ b/net/netfilter/nf_conntrack_standalone.c -@@ -9,6 +9,7 @@ - #include - #include - #include -+#include - #include - #ifdef CONFIG_SYSCTL - #include -@@ -461,6 +462,58 @@ static int ct_cpu_seq_show(struct seq_fi - return 0; - } - -+struct kill_request { -+ u16 family; -+ union nf_inet_addr addr; -+}; -+ -+static int kill_matching(struct nf_conn *i, void *data) -+{ -+ struct kill_request *kr = data; -+ struct nf_conntrack_tuple *t1 = &i->tuplehash[IP_CT_DIR_ORIGINAL].tuple; -+ struct nf_conntrack_tuple *t2 = &i->tuplehash[IP_CT_DIR_REPLY].tuple; -+ -+ if (!kr->family) -+ return 1; -+ -+ if (t1->src.l3num != kr->family) -+ return 0; -+ -+ return (nf_inet_addr_cmp(&kr->addr, &t1->src.u3) || -+ nf_inet_addr_cmp(&kr->addr, &t1->dst.u3) || -+ nf_inet_addr_cmp(&kr->addr, &t2->src.u3) || -+ nf_inet_addr_cmp(&kr->addr, &t2->dst.u3)); -+} -+ -+static int ct_file_write(struct file *file, char *buf, size_t count) -+{ -+ struct seq_file *seq = file->private_data; -+ struct nf_ct_iter_data iter_data; -+ struct kill_request kr = { }; -+ -+ if (count == 0) -+ return 0; -+ -+ if (count >= INET6_ADDRSTRLEN) -+ count = INET6_ADDRSTRLEN - 1; -+ -+ if (strnchr(buf, count, ':')) { -+ kr.family = AF_INET6; -+ if (!in6_pton(buf, count, (void *)&kr.addr, '\n', NULL)) -+ return -EINVAL; -+ } else if (strnchr(buf, count, '.')) { -+ kr.family = AF_INET; -+ if (!in4_pton(buf, count, (void *)&kr.addr, '\n', NULL)) -+ return -EINVAL; -+ } -+ -+ iter_data.net = seq_file_net(seq); -+ iter_data.data = &kr; -+ nf_ct_iterate_cleanup_net(kill_matching, &iter_data); -+ -+ return 0; -+} -+ - static const struct seq_operations ct_cpu_seq_ops = { - .start = ct_cpu_seq_start, - .next = ct_cpu_seq_next, -@@ -474,8 +527,9 @@ static int nf_conntrack_standalone_init_ - kuid_t root_uid; - kgid_t root_gid; - -- pde = proc_create_net("nf_conntrack", 0440, net->proc_net, &ct_seq_ops, -- sizeof(struct ct_iter_state)); -+ pde = proc_create_net_data_write("nf_conntrack", 0440, net->proc_net, -+ &ct_seq_ops, &ct_file_write, -+ sizeof(struct ct_iter_state), NULL); - if (!pde) - goto out_nf_conntrack; - diff --git a/6.11/target/linux/generic/pending-6.11/610-netfilter_match_bypass_default_checks.patch b/6.11/target/linux/generic/pending-6.11/610-netfilter_match_bypass_default_checks.patch deleted file mode 100644 index fd22200a..00000000 --- a/6.11/target/linux/generic/pending-6.11/610-netfilter_match_bypass_default_checks.patch +++ /dev/null @@ -1,110 +0,0 @@ -From: Felix Fietkau -Subject: kernel: add a new version of my netfilter speedup patches for linux 2.6.39 and 3.0 - -Signed-off-by: Felix Fietkau ---- - include/uapi/linux/netfilter_ipv4/ip_tables.h | 1 + - net/ipv4/netfilter/ip_tables.c | 37 +++++++++++++++++++++++++++ - 2 files changed, 38 insertions(+) - ---- a/include/uapi/linux/netfilter_ipv4/ip_tables.h -+++ b/include/uapi/linux/netfilter_ipv4/ip_tables.h -@@ -89,6 +89,7 @@ struct ipt_ip { - #define IPT_F_FRAG 0x01 /* Set if rule is a fragment rule */ - #define IPT_F_GOTO 0x02 /* Set if jump is a goto */ - #define IPT_F_MASK 0x03 /* All possible flag bits mask. */ -+#define IPT_F_NO_DEF_MATCH 0x80 /* Internal: no default match rules present */ - - /* Values for "inv" field in struct ipt_ip. */ - #define IPT_INV_VIA_IN 0x01 /* Invert the sense of IN IFACE. */ ---- a/net/ipv4/netfilter/ip_tables.c -+++ b/net/ipv4/netfilter/ip_tables.c -@@ -48,6 +48,9 @@ ip_packet_match(const struct iphdr *ip, - { - unsigned long ret; - -+ if (ipinfo->flags & IPT_F_NO_DEF_MATCH) -+ return true; -+ - if (NF_INVF(ipinfo, IPT_INV_SRCIP, - (ip->saddr & ipinfo->smsk.s_addr) != ipinfo->src.s_addr) || - NF_INVF(ipinfo, IPT_INV_DSTIP, -@@ -78,6 +81,29 @@ ip_packet_match(const struct iphdr *ip, - return true; - } - -+static void -+ip_checkdefault(struct ipt_ip *ip) -+{ -+ static const char iface_mask[IFNAMSIZ] = {}; -+ -+ if (ip->invflags || ip->flags & IPT_F_FRAG) -+ return; -+ -+ if (memcmp(ip->iniface_mask, iface_mask, IFNAMSIZ) != 0) -+ return; -+ -+ if (memcmp(ip->outiface_mask, iface_mask, IFNAMSIZ) != 0) -+ return; -+ -+ if (ip->smsk.s_addr || ip->dmsk.s_addr) -+ return; -+ -+ if (ip->proto) -+ return; -+ -+ ip->flags |= IPT_F_NO_DEF_MATCH; -+} -+ - static bool - ip_checkentry(const struct ipt_ip *ip) - { -@@ -523,6 +549,8 @@ find_check_entry(struct ipt_entry *e, st - struct xt_mtchk_param mtpar; - struct xt_entry_match *ematch; - -+ ip_checkdefault(&e->ip); -+ - if (!xt_percpu_counter_alloc(alloc_state, &e->counters)) - return -ENOMEM; - -@@ -817,6 +845,7 @@ copy_entries_to_user(unsigned int total_ - const struct xt_table_info *private = table->private; - int ret = 0; - const void *loc_cpu_entry; -+ u8 flags; - - counters = alloc_counters(table); - if (IS_ERR(counters)) -@@ -844,6 +873,14 @@ copy_entries_to_user(unsigned int total_ - goto free_counters; - } - -+ flags = e->ip.flags & IPT_F_MASK; -+ if (copy_to_user(userptr + off -+ + offsetof(struct ipt_entry, ip.flags), -+ &flags, sizeof(flags)) != 0) { -+ ret = -EFAULT; -+ goto free_counters; -+ } -+ - for (i = sizeof(struct ipt_entry); - i < e->target_offset; - i += m->u.match_size) { -@@ -1225,12 +1262,15 @@ compat_copy_entry_to_user(struct ipt_ent - compat_uint_t origsize; - const struct xt_entry_match *ematch; - int ret = 0; -+ u8 flags = e->ip.flags & IPT_F_MASK; - - origsize = *size; - ce = *dstptr; - if (copy_to_user(ce, e, sizeof(struct ipt_entry)) != 0 || - copy_to_user(&ce->counters, &counters[i], -- sizeof(counters[i])) != 0) -+ sizeof(counters[i])) != 0 || -+ copy_to_user(&ce->ip.flags, &flags, -+ sizeof(flags)) != 0) - return -EFAULT; - - *dstptr += sizeof(struct compat_ipt_entry); diff --git a/6.11/target/linux/generic/pending-6.11/611-netfilter_match_bypass_default_table.patch b/6.11/target/linux/generic/pending-6.11/611-netfilter_match_bypass_default_table.patch deleted file mode 100644 index 9f0efe4e..00000000 --- a/6.11/target/linux/generic/pending-6.11/611-netfilter_match_bypass_default_table.patch +++ /dev/null @@ -1,106 +0,0 @@ -From: Felix Fietkau -Subject: netfilter: match bypass default table - -Signed-off-by: Felix Fietkau ---- - net/ipv4/netfilter/ip_tables.c | 79 +++++++++++++++++++++++++++++++----------- - 1 file changed, 58 insertions(+), 21 deletions(-) - ---- a/net/ipv4/netfilter/ip_tables.c -+++ b/net/ipv4/netfilter/ip_tables.c -@@ -244,6 +244,33 @@ struct ipt_entry *ipt_next_entry(const s - return (void *)entry + entry->next_offset; - } - -+static bool -+ipt_handle_default_rule(struct ipt_entry *e, unsigned int *verdict) -+{ -+ struct xt_entry_target *t; -+ struct xt_standard_target *st; -+ -+ if (e->target_offset != sizeof(struct ipt_entry)) -+ return false; -+ -+ if (!(e->ip.flags & IPT_F_NO_DEF_MATCH)) -+ return false; -+ -+ t = ipt_get_target(e); -+ if (t->u.kernel.target->target) -+ return false; -+ -+ st = (struct xt_standard_target *) t; -+ if (st->verdict == XT_RETURN) -+ return false; -+ -+ if (st->verdict >= 0) -+ return false; -+ -+ *verdict = (unsigned)(-st->verdict) - 1; -+ return true; -+} -+ - /* Returns one of the generic firewall policies, like NF_ACCEPT. */ - unsigned int - ipt_do_table(void *priv, -@@ -265,27 +292,28 @@ ipt_do_table(void *priv, - unsigned int addend; - - /* Initialization */ -+ WARN_ON(!(table->valid_hooks & (1 << hook))); -+ local_bh_disable(); -+ private = READ_ONCE(table->private); /* Address dependency. */ -+ cpu = smp_processor_id(); -+ table_base = private->entries; -+ -+ e = get_entry(table_base, private->hook_entry[hook]); -+ if (ipt_handle_default_rule(e, &verdict)) { -+ struct xt_counters *counter; -+ -+ counter = xt_get_this_cpu_counter(&e->counters); -+ ADD_COUNTER(*counter, skb->len, 1); -+ local_bh_enable(); -+ return verdict; -+ } -+ - stackidx = 0; - ip = ip_hdr(skb); - indev = state->in ? state->in->name : nulldevname; - outdev = state->out ? state->out->name : nulldevname; -- /* We handle fragments by dealing with the first fragment as -- * if it was a normal packet. All other fragments are treated -- * normally, except that they will NEVER match rules that ask -- * things we don't know, ie. tcp syn flag or ports). If the -- * rule is also a fragment-specific rule, non-fragments won't -- * match it. */ -- acpar.fragoff = ntohs(ip->frag_off) & IP_OFFSET; -- acpar.thoff = ip_hdrlen(skb); -- acpar.hotdrop = false; -- acpar.state = state; - -- WARN_ON(!(table->valid_hooks & (1 << hook))); -- local_bh_disable(); - addend = xt_write_recseq_begin(); -- private = READ_ONCE(table->private); /* Address dependency. */ -- cpu = smp_processor_id(); -- table_base = private->entries; - jumpstack = (struct ipt_entry **)private->jumpstack[cpu]; - - /* Switch to alternate jumpstack if we're being invoked via TEE. -@@ -298,7 +326,16 @@ ipt_do_table(void *priv, - if (static_key_false(&xt_tee_enabled)) - jumpstack += private->stacksize * __this_cpu_read(nf_skb_duplicated); - -- e = get_entry(table_base, private->hook_entry[hook]); -+ /* We handle fragments by dealing with the first fragment as -+ * if it was a normal packet. All other fragments are treated -+ * normally, except that they will NEVER match rules that ask -+ * things we don't know, ie. tcp syn flag or ports). If the -+ * rule is also a fragment-specific rule, non-fragments won't -+ * match it. */ -+ acpar.fragoff = ntohs(ip->frag_off) & IP_OFFSET; -+ acpar.thoff = ip_hdrlen(skb); -+ acpar.hotdrop = false; -+ acpar.state = state; - - do { - const struct xt_entry_target *t; diff --git a/6.11/target/linux/generic/pending-6.11/612-netfilter_match_reduce_memory_access.patch b/6.11/target/linux/generic/pending-6.11/612-netfilter_match_reduce_memory_access.patch deleted file mode 100644 index 7f291fc0..00000000 --- a/6.11/target/linux/generic/pending-6.11/612-netfilter_match_reduce_memory_access.patch +++ /dev/null @@ -1,22 +0,0 @@ -From: Felix Fietkau -Subject: netfilter: reduce match memory access - -Signed-off-by: Felix Fietkau ---- - net/ipv4/netfilter/ip_tables.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/net/ipv4/netfilter/ip_tables.c -+++ b/net/ipv4/netfilter/ip_tables.c -@@ -51,9 +51,9 @@ ip_packet_match(const struct iphdr *ip, - if (ipinfo->flags & IPT_F_NO_DEF_MATCH) - return true; - -- if (NF_INVF(ipinfo, IPT_INV_SRCIP, -+ if (NF_INVF(ipinfo, IPT_INV_SRCIP, ipinfo->smsk.s_addr && - (ip->saddr & ipinfo->smsk.s_addr) != ipinfo->src.s_addr) || -- NF_INVF(ipinfo, IPT_INV_DSTIP, -+ NF_INVF(ipinfo, IPT_INV_DSTIP, ipinfo->dmsk.s_addr && - (ip->daddr & ipinfo->dmsk.s_addr) != ipinfo->dst.s_addr)) - return false; - diff --git a/6.11/target/linux/generic/pending-6.11/620-net_sched-codel-do-not-defer-queue-length-update.patch b/6.11/target/linux/generic/pending-6.11/620-net_sched-codel-do-not-defer-queue-length-update.patch deleted file mode 100644 index 4b4825ae..00000000 --- a/6.11/target/linux/generic/pending-6.11/620-net_sched-codel-do-not-defer-queue-length-update.patch +++ /dev/null @@ -1,86 +0,0 @@ -From: Konstantin Khlebnikov -Date: Mon, 21 Aug 2017 11:14:14 +0300 -Subject: [PATCH] net_sched/codel: do not defer queue length update - -When codel wants to drop last packet in ->dequeue() it cannot call -qdisc_tree_reduce_backlog() right away - it will notify parent qdisc -about zero qlen and HTB/HFSC will deactivate class. The same class will -be deactivated second time by caller of ->dequeue(). Currently codel and -fq_codel defer update. This triggers warning in HFSC when it's qlen != 0 -but there is no active classes. - -This patch update parent queue length immediately: just temporary increase -qlen around qdisc_tree_reduce_backlog() to prevent first class deactivation -if we have skb to return. - -This might open another problem in HFSC - now operation peek could fail and -deactivate parent class. - -Signed-off-by: Konstantin Khlebnikov -Link: https://bugzilla.kernel.org/show_bug.cgi?id=109581 ---- - ---- a/net/sched/sch_codel.c -+++ b/net/sched/sch_codel.c -@@ -95,11 +95,17 @@ static struct sk_buff *codel_qdisc_deque - &q->stats, qdisc_pkt_len, codel_get_enqueue_time, - drop_func, dequeue_func); - -- /* We cant call qdisc_tree_reduce_backlog() if our qlen is 0, -- * or HTB crashes. Defer it for next round. -+ /* If our qlen is 0 qdisc_tree_reduce_backlog() will deactivate -+ * parent class, dequeue in parent qdisc will do the same if we -+ * return skb. Temporary increment qlen if we have skb. - */ -- if (q->stats.drop_count && sch->q.qlen) { -- qdisc_tree_reduce_backlog(sch, q->stats.drop_count, q->stats.drop_len); -+ if (q->stats.drop_count) { -+ if (skb) -+ sch->q.qlen++; -+ qdisc_tree_reduce_backlog(sch, q->stats.drop_count, -+ q->stats.drop_len); -+ if (skb) -+ sch->q.qlen--; - q->stats.drop_count = 0; - q->stats.drop_len = 0; - } ---- a/net/sched/sch_fq_codel.c -+++ b/net/sched/sch_fq_codel.c -@@ -304,6 +304,21 @@ begin: - &flow->cvars, &q->cstats, qdisc_pkt_len, - codel_get_enqueue_time, drop_func, dequeue_func); - -+ /* If our qlen is 0 qdisc_tree_reduce_backlog() will deactivate -+ * parent class, dequeue in parent qdisc will do the same if we -+ * return skb. Temporary increment qlen if we have skb. -+ */ -+ if (q->cstats.drop_count) { -+ if (skb) -+ sch->q.qlen++; -+ qdisc_tree_reduce_backlog(sch, q->cstats.drop_count, -+ q->cstats.drop_len); -+ if (skb) -+ sch->q.qlen--; -+ q->cstats.drop_count = 0; -+ q->cstats.drop_len = 0; -+ } -+ - if (!skb) { - /* force a pass through old_flows to prevent starvation */ - if ((head == &q->new_flows) && !list_empty(&q->old_flows)) -@@ -314,15 +329,6 @@ begin: - } - qdisc_bstats_update(sch, skb); - flow->deficit -= qdisc_pkt_len(skb); -- /* We cant call qdisc_tree_reduce_backlog() if our qlen is 0, -- * or HTB crashes. Defer it for next round. -- */ -- if (q->cstats.drop_count && sch->q.qlen) { -- qdisc_tree_reduce_backlog(sch, q->cstats.drop_count, -- q->cstats.drop_len); -- q->cstats.drop_count = 0; -- q->cstats.drop_len = 0; -- } - return skb; - } - diff --git a/6.11/target/linux/generic/pending-6.11/630-packet_socket_type.patch b/6.11/target/linux/generic/pending-6.11/630-packet_socket_type.patch deleted file mode 100644 index 10a31277..00000000 --- a/6.11/target/linux/generic/pending-6.11/630-packet_socket_type.patch +++ /dev/null @@ -1,138 +0,0 @@ -From: Felix Fietkau -Subject: net: add an optimization for dealing with raw sockets - -lede-commit: 4898039703d7315f0f3431c860123338ec3be0f6 -Signed-off-by: Felix Fietkau ---- - include/uapi/linux/if_packet.h | 3 +++ - net/packet/af_packet.c | 34 +++++++++++++++++++++++++++------- - net/packet/internal.h | 1 + - 3 files changed, 31 insertions(+), 7 deletions(-) - ---- a/include/uapi/linux/if_packet.h -+++ b/include/uapi/linux/if_packet.h -@@ -33,6 +33,8 @@ struct sockaddr_ll { - #define PACKET_KERNEL 7 /* To kernel space */ - /* Unused, PACKET_FASTROUTE and PACKET_LOOPBACK are invisible to user space */ - #define PACKET_FASTROUTE 6 /* Fastrouted frame */ -+#define PACKET_MASK_ANY 0xffffffff /* mask for packet type bits */ -+ - - /* Packet socket options */ - -@@ -60,6 +62,7 @@ struct sockaddr_ll { - #define PACKET_FANOUT_DATA 22 - #define PACKET_IGNORE_OUTGOING 23 - #define PACKET_VNET_HDR_SZ 24 -+#define PACKET_RECV_TYPE 25 - - #define PACKET_FANOUT_HASH 0 - #define PACKET_FANOUT_LB 1 ---- a/net/packet/af_packet.c -+++ b/net/packet/af_packet.c -@@ -1864,6 +1864,7 @@ static int packet_rcv_spkt(struct sk_buf - { - struct sock *sk; - struct sockaddr_pkt *spkt; -+ struct packet_sock *po; - - /* - * When we registered the protocol we saved the socket in the data -@@ -1871,6 +1872,7 @@ static int packet_rcv_spkt(struct sk_buf - */ - - sk = pt->af_packet_priv; -+ po = pkt_sk(sk); - - /* - * Yank back the headers [hope the device set this -@@ -1883,7 +1885,7 @@ static int packet_rcv_spkt(struct sk_buf - * so that this procedure is noop. - */ - -- if (skb->pkt_type == PACKET_LOOPBACK) -+ if (!(po->pkt_type & (1 << skb->pkt_type))) - goto out; - - if (!net_eq(dev_net(dev), sock_net(sk))) -@@ -2129,12 +2131,12 @@ static int packet_rcv(struct sk_buff *sk - unsigned int snaplen, res; - bool is_drop_n_account = false; - -- if (skb->pkt_type == PACKET_LOOPBACK) -- goto drop; -- - sk = pt->af_packet_priv; - po = pkt_sk(sk); - -+ if (!(po->pkt_type & (1 << skb->pkt_type))) -+ goto drop; -+ - if (!net_eq(dev_net(dev), sock_net(sk))) - goto drop; - -@@ -2261,12 +2263,12 @@ static int tpacket_rcv(struct sk_buff *s - BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h2)) != 32); - BUILD_BUG_ON(TPACKET_ALIGN(sizeof(*h.h3)) != 48); - -- if (skb->pkt_type == PACKET_LOOPBACK) -- goto drop; -- - sk = pt->af_packet_priv; - po = pkt_sk(sk); - -+ if (!(po->pkt_type & (1 << skb->pkt_type))) -+ goto drop; -+ - if (!net_eq(dev_net(dev), sock_net(sk))) - goto drop; - -@@ -3385,6 +3387,7 @@ static int packet_create(struct net *net - mutex_init(&po->pg_vec_lock); - po->rollover = NULL; - po->prot_hook.func = packet_rcv; -+ po->pkt_type = PACKET_MASK_ANY & ~(1 << PACKET_LOOPBACK); - - if (sock->type == SOCK_PACKET) - po->prot_hook.func = packet_rcv_spkt; -@@ -4034,6 +4037,16 @@ packet_setsockopt(struct socket *sock, i - packet_sock_flag_set(po, PACKET_SOCK_QDISC_BYPASS, val); - return 0; - } -+ case PACKET_RECV_TYPE: -+ { -+ unsigned int val; -+ if (optlen != sizeof(val)) -+ return -EINVAL; -+ if (copy_from_sockptr(&val, optval, sizeof(val))) -+ return -EFAULT; -+ po->pkt_type = val & ~BIT(PACKET_LOOPBACK); -+ return 0; -+ } - default: - return -ENOPROTOOPT; - } -@@ -4093,6 +4106,13 @@ static int packet_getsockopt(struct sock - case PACKET_VNET_HDR_SZ: - val = READ_ONCE(po->vnet_hdr_sz); - break; -+ case PACKET_RECV_TYPE: -+ if (len > sizeof(unsigned int)) -+ len = sizeof(unsigned int); -+ val = po->pkt_type; -+ -+ data = &val; -+ break; - case PACKET_VERSION: - val = po->tp_version; - break; ---- a/net/packet/internal.h -+++ b/net/packet/internal.h -@@ -131,6 +131,7 @@ struct packet_sock { - struct net_device __rcu *cached_dev; - struct packet_type prot_hook ____cacheline_aligned_in_smp; - atomic_t tp_drops ____cacheline_aligned_in_smp; -+ unsigned int pkt_type; - }; - - #define pkt_sk(ptr) container_of_const(ptr, struct packet_sock, sk) diff --git a/6.11/target/linux/generic/pending-6.11/655-increase_skb_pad.patch b/6.11/target/linux/generic/pending-6.11/655-increase_skb_pad.patch deleted file mode 100644 index ce7db566..00000000 --- a/6.11/target/linux/generic/pending-6.11/655-increase_skb_pad.patch +++ /dev/null @@ -1,20 +0,0 @@ -From: Felix Fietkau -Subject: kernel: add a few patches for avoiding unnecessary skb reallocations - significantly improves ethernet<->wireless performance - -lede-commit: 6f89cffc9add6939d44a6b54cf9a5e77849aa7fd -Signed-off-by: Felix Fietkau ---- - include/linux/skbuff.h | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/include/linux/skbuff.h -+++ b/include/linux/skbuff.h -@@ -3062,7 +3062,7 @@ static inline int pskb_network_may_pull( - * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8) - */ - #ifndef NET_SKB_PAD --#define NET_SKB_PAD max(32, L1_CACHE_BYTES) -+#define NET_SKB_PAD max(64, L1_CACHE_BYTES) - #endif - - int ___pskb_trim(struct sk_buff *skb, unsigned int len); diff --git a/6.11/target/linux/generic/pending-6.11/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch b/6.11/target/linux/generic/pending-6.11/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch deleted file mode 100644 index 0d65fa72..00000000 --- a/6.11/target/linux/generic/pending-6.11/666-Add-support-for-MAP-E-FMRs-mesh-mode.patch +++ /dev/null @@ -1,511 +0,0 @@ -From: Steven Barth -Subject: Add support for MAP-E FMRs (mesh mode) - -MAP-E FMRs (draft-ietf-softwire-map-10) are rules for IPv4-communication -between MAP CEs (mesh mode) without the need to forward such data to a -border relay. This is similar to how 6rd works but for IPv4 over IPv6. - -Signed-off-by: Steven Barth ---- - include/net/ip6_tunnel.h | 13 ++ - include/uapi/linux/if_tunnel.h | 13 ++ - net/ipv6/ip6_tunnel.c | 276 +++++++++++++++++++++++++++++++++++++++-- - 3 files changed, 291 insertions(+), 11 deletions(-) - ---- a/include/net/ip6_tunnel.h -+++ b/include/net/ip6_tunnel.h -@@ -18,6 +18,18 @@ - /* determine capability on a per-packet basis */ - #define IP6_TNL_F_CAP_PER_PACKET 0x40000 - -+/* IPv6 tunnel FMR */ -+struct __ip6_tnl_fmr { -+ struct __ip6_tnl_fmr *next; /* next fmr in list */ -+ struct in6_addr ip6_prefix; -+ struct in_addr ip4_prefix; -+ -+ __u8 ip6_prefix_len; -+ __u8 ip4_prefix_len; -+ __u8 ea_len; -+ __u8 offset; -+}; -+ - struct __ip6_tnl_parm { - char name[IFNAMSIZ]; /* name of tunnel device */ - int link; /* ifindex of underlying L2 interface */ -@@ -29,6 +41,7 @@ struct __ip6_tnl_parm { - __u32 flags; /* tunnel flags */ - struct in6_addr laddr; /* local tunnel end-point address */ - struct in6_addr raddr; /* remote tunnel end-point address */ -+ struct __ip6_tnl_fmr *fmrs; /* FMRs */ - - __be16 i_flags; - __be16 o_flags; ---- a/include/uapi/linux/if_tunnel.h -+++ b/include/uapi/linux/if_tunnel.h -@@ -77,10 +77,23 @@ enum { - IFLA_IPTUN_ENCAP_DPORT, - IFLA_IPTUN_COLLECT_METADATA, - IFLA_IPTUN_FWMARK, -+ IFLA_IPTUN_FMRS, - __IFLA_IPTUN_MAX, - }; - #define IFLA_IPTUN_MAX (__IFLA_IPTUN_MAX - 1) - -+enum { -+ IFLA_IPTUN_FMR_UNSPEC, -+ IFLA_IPTUN_FMR_IP6_PREFIX, -+ IFLA_IPTUN_FMR_IP4_PREFIX, -+ IFLA_IPTUN_FMR_IP6_PREFIX_LEN, -+ IFLA_IPTUN_FMR_IP4_PREFIX_LEN, -+ IFLA_IPTUN_FMR_EA_LEN, -+ IFLA_IPTUN_FMR_OFFSET, -+ __IFLA_IPTUN_FMR_MAX, -+}; -+#define IFLA_IPTUN_FMR_MAX (__IFLA_IPTUN_FMR_MAX - 1) -+ - enum tunnel_encap_types { - TUNNEL_ENCAP_NONE, - TUNNEL_ENCAP_FOU, ---- a/net/ipv6/ip6_tunnel.c -+++ b/net/ipv6/ip6_tunnel.c -@@ -11,6 +11,9 @@ - * linux/net/ipv6/sit.c and linux/net/ipv4/ipip.c - * - * RFC 2473 -+ * -+ * Changes: -+ * Steven Barth : MAP-E FMR support - */ - - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -@@ -67,9 +70,9 @@ static bool log_ecn_error = true; - module_param(log_ecn_error, bool, 0644); - MODULE_PARM_DESC(log_ecn_error, "Log packets received with corrupted ECN"); - --static u32 HASH(const struct in6_addr *addr1, const struct in6_addr *addr2) -+static u32 HASH(const struct in6_addr *addr) - { -- u32 hash = ipv6_addr_hash(addr1) ^ ipv6_addr_hash(addr2); -+ u32 hash = ipv6_addr_hash(addr); - - return hash_32(hash, IP6_TUNNEL_HASH_SIZE_SHIFT); - } -@@ -114,17 +117,33 @@ static struct ip6_tnl * - ip6_tnl_lookup(struct net *net, int link, - const struct in6_addr *remote, const struct in6_addr *local) - { -- unsigned int hash = HASH(remote, local); -+ unsigned int hash = HASH(local); - struct ip6_tnl *t, *cand = NULL; - struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id); - struct in6_addr any; - - for_each_ip6_tunnel_rcu(ip6n->tnls_r_l[hash]) { - if (!ipv6_addr_equal(local, &t->parms.laddr) || -- !ipv6_addr_equal(remote, &t->parms.raddr) || - !(t->dev->flags & IFF_UP)) - continue; - -+ if (!ipv6_addr_equal(remote, &t->parms.raddr)) { -+ struct __ip6_tnl_fmr *fmr; -+ bool found = false; -+ -+ for (fmr = t->parms.fmrs; fmr; fmr = fmr->next) { -+ if (!ipv6_prefix_equal(remote, &fmr->ip6_prefix, -+ fmr->ip6_prefix_len)) -+ continue; -+ -+ found = true; -+ break; -+ } -+ -+ if (!found) -+ continue; -+ } -+ - if (link == t->parms.link) - return t; - else -@@ -132,7 +151,7 @@ ip6_tnl_lookup(struct net *net, int link - } - - memset(&any, 0, sizeof(any)); -- hash = HASH(&any, local); -+ hash = HASH(local); - for_each_ip6_tunnel_rcu(ip6n->tnls_r_l[hash]) { - if (!ipv6_addr_equal(local, &t->parms.laddr) || - !ipv6_addr_any(&t->parms.raddr) || -@@ -145,7 +164,7 @@ ip6_tnl_lookup(struct net *net, int link - cand = t; - } - -- hash = HASH(remote, &any); -+ hash = HASH(&any); - for_each_ip6_tunnel_rcu(ip6n->tnls_r_l[hash]) { - if (!ipv6_addr_equal(remote, &t->parms.raddr) || - !ipv6_addr_any(&t->parms.laddr) || -@@ -194,7 +213,7 @@ ip6_tnl_bucket(struct ip6_tnl_net *ip6n, - - if (!ipv6_addr_any(remote) || !ipv6_addr_any(local)) { - prio = 1; -- h = HASH(remote, local); -+ h = HASH(local); - } - return &ip6n->tnls[prio][h]; - } -@@ -376,6 +395,12 @@ ip6_tnl_dev_uninit(struct net_device *de - struct net *net = t->net; - struct ip6_tnl_net *ip6n = net_generic(net, ip6_tnl_net_id); - -+ while (t->parms.fmrs) { -+ struct __ip6_tnl_fmr *next = t->parms.fmrs->next; -+ kfree(t->parms.fmrs); -+ t->parms.fmrs = next; -+ } -+ - if (dev == ip6n->fb_tnl_dev) - RCU_INIT_POINTER(ip6n->tnls_wc[0], NULL); - else -@@ -788,6 +813,107 @@ int ip6_tnl_rcv_ctl(struct ip6_tnl *t, - } - EXPORT_SYMBOL_GPL(ip6_tnl_rcv_ctl); - -+/** -+ * ip4ip6_fmr_calc - calculate target / source IPv6-address based on FMR -+ * @dest: destination IPv6 address buffer -+ * @skb: received socket buffer -+ * @fmr: MAP FMR -+ * @xmit: Calculate for xmit or rcv -+ **/ -+static void ip4ip6_fmr_calc(struct in6_addr *dest, -+ const struct iphdr *iph, const uint8_t *end, -+ const struct __ip6_tnl_fmr *fmr, bool xmit) -+{ -+ int psidlen = fmr->ea_len - (32 - fmr->ip4_prefix_len); -+ u8 *portp = NULL; -+ bool use_dest_addr; -+ const struct iphdr *dsth = iph; -+ -+ if ((u8*)dsth >= end) -+ return; -+ -+ /* find significant IP header */ -+ if (iph->protocol == IPPROTO_ICMP) { -+ struct icmphdr *ih = (struct icmphdr*)(((u8*)dsth) + dsth->ihl * 4); -+ if (ih && ((u8*)&ih[1]) <= end && ( -+ ih->type == ICMP_DEST_UNREACH || -+ ih->type == ICMP_SOURCE_QUENCH || -+ ih->type == ICMP_TIME_EXCEEDED || -+ ih->type == ICMP_PARAMETERPROB || -+ ih->type == ICMP_REDIRECT)) -+ dsth = (const struct iphdr*)&ih[1]; -+ } -+ -+ /* in xmit-path use dest port by default and source port only if -+ this is an ICMP reply to something else; vice versa in rcv-path */ -+ use_dest_addr = (xmit && dsth == iph) || (!xmit && dsth != iph); -+ -+ /* get dst port */ -+ if (((u8*)&dsth[1]) <= end && ( -+ dsth->protocol == IPPROTO_UDP || -+ dsth->protocol == IPPROTO_TCP || -+ dsth->protocol == IPPROTO_SCTP || -+ dsth->protocol == IPPROTO_DCCP)) { -+ /* for UDP, TCP, SCTP and DCCP source and dest port -+ follow IPv4 header directly */ -+ portp = ((u8*)dsth) + dsth->ihl * 4; -+ -+ if (use_dest_addr) -+ portp += sizeof(u16); -+ } else if (iph->protocol == IPPROTO_ICMP) { -+ struct icmphdr *ih = (struct icmphdr*)(((u8*)dsth) + dsth->ihl * 4); -+ -+ /* use icmp identifier as port */ -+ if (((u8*)&ih) <= end && ( -+ (use_dest_addr && ( -+ ih->type == ICMP_ECHOREPLY || -+ ih->type == ICMP_TIMESTAMPREPLY || -+ ih->type == ICMP_INFO_REPLY || -+ ih->type == ICMP_ADDRESSREPLY)) || -+ (!use_dest_addr && ( -+ ih->type == ICMP_ECHO || -+ ih->type == ICMP_TIMESTAMP || -+ ih->type == ICMP_INFO_REQUEST || -+ ih->type == ICMP_ADDRESS) -+ ))) -+ portp = (u8*)&ih->un.echo.id; -+ } -+ -+ if ((portp && &portp[2] <= end) || psidlen == 0) { -+ int frombyte = fmr->ip6_prefix_len / 8; -+ int fromrem = fmr->ip6_prefix_len % 8; -+ int bytes = sizeof(struct in6_addr) - frombyte; -+ const u32 *addr = (use_dest_addr) ? &iph->daddr : &iph->saddr; -+ u64 eabits = ((u64)ntohl(*addr)) << (32 + fmr->ip4_prefix_len); -+ u64 t = 0; -+ -+ /* extract PSID from port and add it to eabits */ -+ u16 psidbits = 0; -+ if (psidlen > 0) { -+ psidbits = ((u16)portp[0]) << 8 | ((u16)portp[1]); -+ psidbits >>= 16 - psidlen - fmr->offset; -+ psidbits = (u16)(psidbits << (16 - psidlen)); -+ eabits |= ((u64)psidbits) << (48 - (fmr->ea_len - psidlen)); -+ } -+ -+ /* rewrite destination address */ -+ *dest = fmr->ip6_prefix; -+ memcpy(&dest->s6_addr[10], addr, sizeof(*addr)); -+ dest->s6_addr16[7] = htons(psidbits >> (16 - psidlen)); -+ -+ if (bytes > sizeof(u64)) -+ bytes = sizeof(u64); -+ -+ /* insert eabits */ -+ memcpy(&t, &dest->s6_addr[frombyte], bytes); -+ t = be64_to_cpu(t) & ~(((((u64)1) << fmr->ea_len) - 1) -+ << (64 - fmr->ea_len - fromrem)); -+ t = cpu_to_be64(t | (eabits >> fromrem)); -+ memcpy(&dest->s6_addr[frombyte], &t, bytes); -+ } -+} -+ -+ - static int __ip6_tnl_rcv(struct ip6_tnl *tunnel, struct sk_buff *skb, - const struct tnl_ptk_info *tpi, - struct metadata_dst *tun_dst, -@@ -855,6 +981,27 @@ static int __ip6_tnl_rcv(struct ip6_tnl - - memset(skb->cb, 0, sizeof(struct inet6_skb_parm)); - -+ if (tpi->proto == htons(ETH_P_IP) && tunnel->parms.fmrs && -+ !ipv6_addr_equal(&ipv6h->saddr, &tunnel->parms.raddr)) { -+ /* Packet didn't come from BR, so lookup FMR */ -+ struct __ip6_tnl_fmr *fmr; -+ struct in6_addr expected = tunnel->parms.raddr; -+ for (fmr = tunnel->parms.fmrs; fmr; fmr = fmr->next) -+ if (ipv6_prefix_equal(&ipv6h->saddr, -+ &fmr->ip6_prefix, fmr->ip6_prefix_len)) -+ break; -+ -+ /* Check that IPv6 matches IPv4 source to prevent spoofing */ -+ if (fmr) -+ ip4ip6_fmr_calc(&expected, ip_hdr(skb), -+ skb_tail_pointer(skb), fmr, false); -+ -+ if (!ipv6_addr_equal(&ipv6h->saddr, &expected)) { -+ rcu_read_unlock(); -+ goto drop; -+ } -+ } -+ - __skb_tunnel_rx(skb, tunnel->dev, tunnel->net); - - err = dscp_ecn_decapsulate(tunnel, ipv6h, skb); -@@ -1002,6 +1149,7 @@ static void init_tel_txopt(struct ipv6_t - opt->ops.opt_nflen = 8; - } - -+ - /** - * ip6_tnl_addr_conflict - compare packet addresses to tunnel's own - * @t: the outgoing tunnel device -@@ -1292,6 +1440,7 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str - u8 protocol) - { - struct ip6_tnl *t = netdev_priv(dev); -+ struct __ip6_tnl_fmr *fmr; - struct ipv6hdr *ipv6h; - const struct iphdr *iph; - int encap_limit = -1; -@@ -1391,6 +1540,18 @@ ipxip6_tnl_xmit(struct sk_buff *skb, str - fl6.flowi6_uid = sock_net_uid(dev_net(dev), NULL); - dsfield = INET_ECN_encapsulate(dsfield, orig_dsfield); - -+ /* try to find matching FMR */ -+ for (fmr = t->parms.fmrs; fmr; fmr = fmr->next) { -+ unsigned mshift = 32 - fmr->ip4_prefix_len; -+ if (ntohl(fmr->ip4_prefix.s_addr) >> mshift == -+ ntohl(ip_hdr(skb)->daddr) >> mshift) -+ break; -+ } -+ -+ /* change dstaddr according to FMR */ -+ if (fmr) -+ ip4ip6_fmr_calc(&fl6.daddr, ip_hdr(skb), skb_tail_pointer(skb), fmr, true); -+ - if (iptunnel_handle_offloads(skb, SKB_GSO_IPXIP6)) - return -1; - -@@ -1543,6 +1704,14 @@ ip6_tnl_change(struct ip6_tnl *t, const - t->parms.link = p->link; - t->parms.proto = p->proto; - t->parms.fwmark = p->fwmark; -+ -+ while (t->parms.fmrs) { -+ struct __ip6_tnl_fmr *next = t->parms.fmrs->next; -+ kfree(t->parms.fmrs); -+ t->parms.fmrs = next; -+ } -+ t->parms.fmrs = p->fmrs; -+ - dst_cache_reset(&t->dst_cache); - ip6_tnl_link_config(t); - } -@@ -1577,6 +1746,7 @@ ip6_tnl_parm_from_user(struct __ip6_tnl_ - p->flowinfo = u->flowinfo; - p->link = u->link; - p->proto = u->proto; -+ p->fmrs = NULL; - memcpy(p->name, u->name, sizeof(u->name)); - } - -@@ -1964,6 +2134,15 @@ static int ip6_tnl_validate(struct nlatt - return 0; - } - -+static const struct nla_policy ip6_tnl_fmr_policy[IFLA_IPTUN_FMR_MAX + 1] = { -+ [IFLA_IPTUN_FMR_IP6_PREFIX] = { .len = sizeof(struct in6_addr) }, -+ [IFLA_IPTUN_FMR_IP4_PREFIX] = { .len = sizeof(struct in_addr) }, -+ [IFLA_IPTUN_FMR_IP6_PREFIX_LEN] = { .type = NLA_U8 }, -+ [IFLA_IPTUN_FMR_IP4_PREFIX_LEN] = { .type = NLA_U8 }, -+ [IFLA_IPTUN_FMR_EA_LEN] = { .type = NLA_U8 }, -+ [IFLA_IPTUN_FMR_OFFSET] = { .type = NLA_U8 } -+}; -+ - static void ip6_tnl_netlink_parms(struct nlattr *data[], - struct __ip6_tnl_parm *parms) - { -@@ -2001,6 +2180,46 @@ static void ip6_tnl_netlink_parms(struct - - if (data[IFLA_IPTUN_FWMARK]) - parms->fwmark = nla_get_u32(data[IFLA_IPTUN_FWMARK]); -+ -+ if (data[IFLA_IPTUN_FMRS]) { -+ unsigned rem; -+ struct nlattr *fmr; -+ nla_for_each_nested(fmr, data[IFLA_IPTUN_FMRS], rem) { -+ struct nlattr *fmrd[IFLA_IPTUN_FMR_MAX + 1], *c; -+ struct __ip6_tnl_fmr *nfmr; -+ -+ nla_parse_nested(fmrd, IFLA_IPTUN_FMR_MAX, -+ fmr, ip6_tnl_fmr_policy, NULL); -+ -+ if (!(nfmr = kzalloc(sizeof(*nfmr), GFP_KERNEL))) -+ continue; -+ -+ nfmr->offset = 6; -+ -+ if ((c = fmrd[IFLA_IPTUN_FMR_IP6_PREFIX])) -+ nla_memcpy(&nfmr->ip6_prefix, fmrd[IFLA_IPTUN_FMR_IP6_PREFIX], -+ sizeof(nfmr->ip6_prefix)); -+ -+ if ((c = fmrd[IFLA_IPTUN_FMR_IP4_PREFIX])) -+ nla_memcpy(&nfmr->ip4_prefix, fmrd[IFLA_IPTUN_FMR_IP4_PREFIX], -+ sizeof(nfmr->ip4_prefix)); -+ -+ if ((c = fmrd[IFLA_IPTUN_FMR_IP6_PREFIX_LEN])) -+ nfmr->ip6_prefix_len = nla_get_u8(c); -+ -+ if ((c = fmrd[IFLA_IPTUN_FMR_IP4_PREFIX_LEN])) -+ nfmr->ip4_prefix_len = nla_get_u8(c); -+ -+ if ((c = fmrd[IFLA_IPTUN_FMR_EA_LEN])) -+ nfmr->ea_len = nla_get_u8(c); -+ -+ if ((c = fmrd[IFLA_IPTUN_FMR_OFFSET])) -+ nfmr->offset = nla_get_u8(c); -+ -+ nfmr->next = parms->fmrs; -+ parms->fmrs = nfmr; -+ } -+ } - } - - static int ip6_tnl_newlink(struct net *src_net, struct net_device *dev, -@@ -2084,6 +2303,12 @@ static void ip6_tnl_dellink(struct net_d - - static size_t ip6_tnl_get_size(const struct net_device *dev) - { -+ const struct ip6_tnl *t = netdev_priv(dev); -+ struct __ip6_tnl_fmr *c; -+ int fmrs = 0; -+ for (c = t->parms.fmrs; c; c = c->next) -+ ++fmrs; -+ - return - /* IFLA_IPTUN_LINK */ - nla_total_size(4) + -@@ -2113,6 +2338,24 @@ static size_t ip6_tnl_get_size(const str - nla_total_size(0) + - /* IFLA_IPTUN_FWMARK */ - nla_total_size(4) + -+ /* IFLA_IPTUN_FMRS */ -+ nla_total_size(0) + -+ ( -+ /* nest */ -+ nla_total_size(0) + -+ /* IFLA_IPTUN_FMR_IP6_PREFIX */ -+ nla_total_size(sizeof(struct in6_addr)) + -+ /* IFLA_IPTUN_FMR_IP4_PREFIX */ -+ nla_total_size(sizeof(struct in_addr)) + -+ /* IFLA_IPTUN_FMR_EA_LEN */ -+ nla_total_size(1) + -+ /* IFLA_IPTUN_FMR_IP6_PREFIX_LEN */ -+ nla_total_size(1) + -+ /* IFLA_IPTUN_FMR_IP4_PREFIX_LEN */ -+ nla_total_size(1) + -+ /* IFLA_IPTUN_FMR_OFFSET */ -+ nla_total_size(1) -+ ) * fmrs + - 0; - } - -@@ -2120,6 +2363,9 @@ static int ip6_tnl_fill_info(struct sk_b - { - struct ip6_tnl *tunnel = netdev_priv(dev); - struct __ip6_tnl_parm *parm = &tunnel->parms; -+ struct __ip6_tnl_fmr *c; -+ int fmrcnt = 0; -+ struct nlattr *fmrs; - - if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) || - nla_put_in6_addr(skb, IFLA_IPTUN_LOCAL, &parm->laddr) || -@@ -2129,9 +2375,27 @@ static int ip6_tnl_fill_info(struct sk_b - nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) || - nla_put_u32(skb, IFLA_IPTUN_FLAGS, parm->flags) || - nla_put_u8(skb, IFLA_IPTUN_PROTO, parm->proto) || -- nla_put_u32(skb, IFLA_IPTUN_FWMARK, parm->fwmark)) -+ nla_put_u32(skb, IFLA_IPTUN_FWMARK, parm->fwmark) || -+ !(fmrs = nla_nest_start(skb, IFLA_IPTUN_FMRS))) - goto nla_put_failure; - -+ for (c = parm->fmrs; c; c = c->next) { -+ struct nlattr *fmr = nla_nest_start(skb, ++fmrcnt); -+ if (!fmr || -+ nla_put(skb, IFLA_IPTUN_FMR_IP6_PREFIX, -+ sizeof(c->ip6_prefix), &c->ip6_prefix) || -+ nla_put(skb, IFLA_IPTUN_FMR_IP4_PREFIX, -+ sizeof(c->ip4_prefix), &c->ip4_prefix) || -+ nla_put_u8(skb, IFLA_IPTUN_FMR_IP6_PREFIX_LEN, c->ip6_prefix_len) || -+ nla_put_u8(skb, IFLA_IPTUN_FMR_IP4_PREFIX_LEN, c->ip4_prefix_len) || -+ nla_put_u8(skb, IFLA_IPTUN_FMR_EA_LEN, c->ea_len) || -+ nla_put_u8(skb, IFLA_IPTUN_FMR_OFFSET, c->offset)) -+ goto nla_put_failure; -+ -+ nla_nest_end(skb, fmr); -+ } -+ nla_nest_end(skb, fmrs); -+ - if (nla_put_u16(skb, IFLA_IPTUN_ENCAP_TYPE, tunnel->encap.type) || - nla_put_be16(skb, IFLA_IPTUN_ENCAP_SPORT, tunnel->encap.sport) || - nla_put_be16(skb, IFLA_IPTUN_ENCAP_DPORT, tunnel->encap.dport) || -@@ -2171,6 +2435,7 @@ static const struct nla_policy ip6_tnl_p - [IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 }, - [IFLA_IPTUN_COLLECT_METADATA] = { .type = NLA_FLAG }, - [IFLA_IPTUN_FWMARK] = { .type = NLA_U32 }, -+ [IFLA_IPTUN_FMRS] = { .type = NLA_NESTED }, - }; - - static struct rtnl_link_ops ip6_link_ops __read_mostly = { diff --git a/6.11/target/linux/generic/pending-6.11/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch b/6.11/target/linux/generic/pending-6.11/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch deleted file mode 100644 index f3b5ccf2..00000000 --- a/6.11/target/linux/generic/pending-6.11/670-ipv6-allow-rejecting-with-source-address-failed-policy.patch +++ /dev/null @@ -1,263 +0,0 @@ -From: Jonas Gorski -Subject: ipv6: allow rejecting with "source address failed policy" - -RFC6204 L-14 requires rejecting traffic from invalid addresses with -ICMPv6 Destination Unreachable, Code 5 (Source address failed ingress/ -egress policy) on the LAN side, so add an appropriate rule for that. - -Signed-off-by: Jonas Gorski ---- - include/net/netns/ipv6.h | 1 + - include/uapi/linux/fib_rules.h | 4 +++ - include/uapi/linux/rtnetlink.h | 1 + - net/ipv4/fib_semantics.c | 4 +++ - net/ipv4/fib_trie.c | 1 + - net/ipv4/ipmr.c | 1 + - net/ipv6/fib6_rules.c | 4 +++ - net/ipv6/ip6mr.c | 2 ++ - net/ipv6/route.c | 58 +++++++++++++++++++++++++++++++++++++++++- - 9 files changed, 75 insertions(+), 1 deletion(-) - ---- a/include/net/netns/ipv6.h -+++ b/include/net/netns/ipv6.h -@@ -86,6 +86,7 @@ struct netns_ipv6 { - unsigned int fib6_routes_require_src; - #endif - struct rt6_info *ip6_prohibit_entry; -+ struct rt6_info *ip6_policy_failed_entry; - struct rt6_info *ip6_blk_hole_entry; - struct fib6_table *fib6_local_tbl; - struct fib_rules_ops *fib6_rules_ops; ---- a/include/uapi/linux/fib_rules.h -+++ b/include/uapi/linux/fib_rules.h -@@ -82,6 +82,10 @@ enum { - FR_ACT_BLACKHOLE, /* Drop without notification */ - FR_ACT_UNREACHABLE, /* Drop with ENETUNREACH */ - FR_ACT_PROHIBIT, /* Drop with EACCES */ -+ FR_ACT_RES9, -+ FR_ACT_RES10, -+ FR_ACT_RES11, -+ FR_ACT_POLICY_FAILED, /* Drop with EACCES */ - __FR_ACT_MAX, - }; - ---- a/include/uapi/linux/rtnetlink.h -+++ b/include/uapi/linux/rtnetlink.h -@@ -265,6 +265,7 @@ enum { - RTN_THROW, /* Not in this table */ - RTN_NAT, /* Translate this address */ - RTN_XRESOLVE, /* Use external resolver */ -+ RTN_POLICY_FAILED, /* Failed ingress/egress policy */ - __RTN_MAX - }; - ---- a/net/ipv4/fib_semantics.c -+++ b/net/ipv4/fib_semantics.c -@@ -145,6 +145,10 @@ const struct fib_prop fib_props[RTN_MAX - .error = -EINVAL, - .scope = RT_SCOPE_NOWHERE, - }, -+ [RTN_POLICY_FAILED] = { -+ .error = -EACCES, -+ .scope = RT_SCOPE_UNIVERSE, -+ }, - }; - - static void rt_fibinfo_free(struct rtable __rcu **rtp) ---- a/net/ipv4/fib_trie.c -+++ b/net/ipv4/fib_trie.c -@@ -2783,6 +2783,7 @@ static const char *const rtn_type_names[ - [RTN_THROW] = "THROW", - [RTN_NAT] = "NAT", - [RTN_XRESOLVE] = "XRESOLVE", -+ [RTN_POLICY_FAILED] = "POLICY_FAILED", - }; - - static inline const char *rtn_type(char *buf, size_t len, unsigned int t) ---- a/net/ipv4/ipmr.c -+++ b/net/ipv4/ipmr.c -@@ -180,6 +180,7 @@ static int ipmr_rule_action(struct fib_r - case FR_ACT_UNREACHABLE: - return -ENETUNREACH; - case FR_ACT_PROHIBIT: -+ case FR_ACT_POLICY_FAILED: - return -EACCES; - case FR_ACT_BLACKHOLE: - default: ---- a/net/ipv6/fib6_rules.c -+++ b/net/ipv6/fib6_rules.c -@@ -221,6 +221,10 @@ static int __fib6_rule_action(struct fib - err = -EACCES; - rt = net->ipv6.ip6_prohibit_entry; - goto discard_pkt; -+ case FR_ACT_POLICY_FAILED: -+ err = -EACCES; -+ rt = net->ipv6.ip6_policy_failed_entry; -+ goto discard_pkt; - } - - tb_id = fib_rule_get_table(rule, arg); ---- a/net/ipv6/ip6mr.c -+++ b/net/ipv6/ip6mr.c -@@ -170,6 +170,8 @@ static int ip6mr_rule_action(struct fib_ - return -ENETUNREACH; - case FR_ACT_PROHIBIT: - return -EACCES; -+ case FR_ACT_POLICY_FAILED: -+ return -EACCES; - case FR_ACT_BLACKHOLE: - default: - return -EINVAL; ---- a/net/ipv6/route.c -+++ b/net/ipv6/route.c -@@ -97,6 +97,8 @@ static int ip6_pkt_discard(struct sk_bu - static int ip6_pkt_discard_out(struct net *net, struct sock *sk, struct sk_buff *skb); - static int ip6_pkt_prohibit(struct sk_buff *skb); - static int ip6_pkt_prohibit_out(struct net *net, struct sock *sk, struct sk_buff *skb); -+static int ip6_pkt_policy_failed(struct sk_buff *skb); -+static int ip6_pkt_policy_failed_out(struct net *net, struct sock *sk, struct sk_buff *skb); - static void ip6_link_failure(struct sk_buff *skb); - static void ip6_rt_update_pmtu(struct dst_entry *dst, struct sock *sk, - struct sk_buff *skb, u32 mtu, -@@ -317,6 +319,18 @@ static const struct rt6_info ip6_prohibi - .rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP), - }; - -+static const struct rt6_info ip6_policy_failed_entry_template = { -+ .dst = { -+ .__rcuref = RCUREF_INIT(1), -+ .__use = 1, -+ .obsolete = DST_OBSOLETE_FORCE_CHK, -+ .error = -EACCES, -+ .input = ip6_pkt_policy_failed, -+ .output = ip6_pkt_policy_failed_out, -+ }, -+ .rt6i_flags = (RTF_REJECT | RTF_NONEXTHOP), -+}; -+ - static const struct rt6_info ip6_blk_hole_entry_template = { - .dst = { - .__rcuref = RCUREF_INIT(1), -@@ -1037,6 +1051,7 @@ static const int fib6_prop[RTN_MAX + 1] - [RTN_BLACKHOLE] = -EINVAL, - [RTN_UNREACHABLE] = -EHOSTUNREACH, - [RTN_PROHIBIT] = -EACCES, -+ [RTN_POLICY_FAILED] = -EACCES, - [RTN_THROW] = -EAGAIN, - [RTN_NAT] = -EINVAL, - [RTN_XRESOLVE] = -EINVAL, -@@ -1072,6 +1087,10 @@ static void ip6_rt_init_dst_reject(struc - rt->dst.output = ip6_pkt_prohibit_out; - rt->dst.input = ip6_pkt_prohibit; - break; -+ case RTN_POLICY_FAILED: -+ rt->dst.output = ip6_pkt_policy_failed_out; -+ rt->dst.input = ip6_pkt_policy_failed; -+ break; - case RTN_THROW: - case RTN_UNREACHABLE: - default: -@@ -4539,6 +4558,17 @@ static int ip6_pkt_prohibit_out(struct n - return ip6_pkt_drop(skb, ICMPV6_ADM_PROHIBITED, IPSTATS_MIB_OUTNOROUTES); - } - -+static int ip6_pkt_policy_failed(struct sk_buff *skb) -+{ -+ return ip6_pkt_drop(skb, ICMPV6_POLICY_FAIL, IPSTATS_MIB_INNOROUTES); -+} -+ -+static int ip6_pkt_policy_failed_out(struct net *net, struct sock *sk, struct sk_buff *skb) -+{ -+ skb->dev = skb_dst(skb)->dev; -+ return ip6_pkt_drop(skb, ICMPV6_POLICY_FAIL, IPSTATS_MIB_OUTNOROUTES); -+} -+ - /* - * Allocate a dst for local (unicast / anycast) address. - */ -@@ -5030,7 +5060,8 @@ static int rtm_to_fib6_config(struct sk_ - if (rtm->rtm_type == RTN_UNREACHABLE || - rtm->rtm_type == RTN_BLACKHOLE || - rtm->rtm_type == RTN_PROHIBIT || -- rtm->rtm_type == RTN_THROW) -+ rtm->rtm_type == RTN_THROW || -+ rtm->rtm_type == RTN_POLICY_FAILED) - cfg->fc_flags |= RTF_REJECT; - - if (rtm->rtm_type == RTN_LOCAL) -@@ -6277,6 +6308,8 @@ static int ip6_route_dev_notify(struct n - #ifdef CONFIG_IPV6_MULTIPLE_TABLES - net->ipv6.ip6_prohibit_entry->dst.dev = dev; - net->ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(dev); -+ net->ipv6.ip6_policy_failed_entry->dst.dev = dev; -+ net->ipv6.ip6_policy_failed_entry->rt6i_idev = in6_dev_get(dev); - net->ipv6.ip6_blk_hole_entry->dst.dev = dev; - net->ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(dev); - #endif -@@ -6288,6 +6321,7 @@ static int ip6_route_dev_notify(struct n - in6_dev_put_clear(&net->ipv6.ip6_null_entry->rt6i_idev); - #ifdef CONFIG_IPV6_MULTIPLE_TABLES - in6_dev_put_clear(&net->ipv6.ip6_prohibit_entry->rt6i_idev); -+ in6_dev_put_clear(&net->ipv6.ip6_policy_failed_entry->rt6i_idev); - in6_dev_put_clear(&net->ipv6.ip6_blk_hole_entry->rt6i_idev); - #endif - } -@@ -6488,6 +6522,8 @@ static int __net_init ip6_route_net_init - - #ifdef CONFIG_IPV6_MULTIPLE_TABLES - net->ipv6.fib6_has_custom_rules = false; -+ -+ - net->ipv6.ip6_prohibit_entry = kmemdup(&ip6_prohibit_entry_template, - sizeof(*net->ipv6.ip6_prohibit_entry), - GFP_KERNEL); -@@ -6498,11 +6534,21 @@ static int __net_init ip6_route_net_init - ip6_template_metrics, true); - INIT_LIST_HEAD(&net->ipv6.ip6_prohibit_entry->dst.rt_uncached); - -+ net->ipv6.ip6_policy_failed_entry = -+ kmemdup(&ip6_policy_failed_entry_template, -+ sizeof(*net->ipv6.ip6_policy_failed_entry), GFP_KERNEL); -+ if (!net->ipv6.ip6_policy_failed_entry) -+ goto out_ip6_prohibit_entry; -+ net->ipv6.ip6_policy_failed_entry->dst.ops = &net->ipv6.ip6_dst_ops; -+ dst_init_metrics(&net->ipv6.ip6_policy_failed_entry->dst, -+ ip6_template_metrics, true); -+ INIT_LIST_HEAD(&net->ipv6.ip6_policy_failed_entry->dst.rt_uncached); -+ - net->ipv6.ip6_blk_hole_entry = kmemdup(&ip6_blk_hole_entry_template, - sizeof(*net->ipv6.ip6_blk_hole_entry), - GFP_KERNEL); - if (!net->ipv6.ip6_blk_hole_entry) -- goto out_ip6_prohibit_entry; -+ goto out_ip6_policy_failed_entry; - net->ipv6.ip6_blk_hole_entry->dst.ops = &net->ipv6.ip6_dst_ops; - dst_init_metrics(&net->ipv6.ip6_blk_hole_entry->dst, - ip6_template_metrics, true); -@@ -6529,6 +6575,8 @@ out: - return ret; - - #ifdef CONFIG_IPV6_MULTIPLE_TABLES -+out_ip6_policy_failed_entry: -+ kfree(net->ipv6.ip6_policy_failed_entry); - out_ip6_prohibit_entry: - kfree(net->ipv6.ip6_prohibit_entry); - out_ip6_null_entry: -@@ -6548,6 +6596,7 @@ static void __net_exit ip6_route_net_exi - kfree(net->ipv6.ip6_null_entry); - #ifdef CONFIG_IPV6_MULTIPLE_TABLES - kfree(net->ipv6.ip6_prohibit_entry); -+ kfree(net->ipv6.ip6_policy_failed_entry); - kfree(net->ipv6.ip6_blk_hole_entry); - #endif - dst_entries_destroy(&net->ipv6.ip6_dst_ops); -@@ -6631,6 +6680,9 @@ void __init ip6_route_init_special_entri - init_net.ipv6.ip6_prohibit_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); - init_net.ipv6.ip6_blk_hole_entry->dst.dev = init_net.loopback_dev; - init_net.ipv6.ip6_blk_hole_entry->rt6i_idev = in6_dev_get(init_net.loopback_dev); -+ init_net.ipv6.ip6_policy_failed_entry->dst.dev = init_net.loopback_dev; -+ init_net.ipv6.ip6_policy_failed_entry->rt6i_idev = -+ in6_dev_get(init_net.loopback_dev); - #endif - } - diff --git a/6.11/target/linux/generic/pending-6.11/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch b/6.11/target/linux/generic/pending-6.11/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch deleted file mode 100644 index 94416a5d..00000000 --- a/6.11/target/linux/generic/pending-6.11/671-net-provide-defines-for-_POLICY_FAILED-until-all-cod.patch +++ /dev/null @@ -1,50 +0,0 @@ -From: Jonas Gorski -Subject: net: provide defines for _POLICY_FAILED until all code is updated - -Upstream introduced ICMPV6_POLICY_FAIL for code 5 of destination -unreachable, conflicting with our name. - -Add appropriate defines to allow our code to build with the new -name until we have updated our local patches for older kernels -and userspace packages. - -Signed-off-by: Jonas Gorski ---- - include/uapi/linux/fib_rules.h | 2 ++ - include/uapi/linux/icmpv6.h | 2 ++ - include/uapi/linux/rtnetlink.h | 2 ++ - 3 files changed, 6 insertions(+) - ---- a/include/uapi/linux/fib_rules.h -+++ b/include/uapi/linux/fib_rules.h -@@ -89,6 +89,8 @@ enum { - __FR_ACT_MAX, - }; - -+#define FR_ACT_FAILED_POLICY FR_ACT_POLICY_FAILED -+ - #define FR_ACT_MAX (__FR_ACT_MAX - 1) - - #endif ---- a/include/uapi/linux/icmpv6.h -+++ b/include/uapi/linux/icmpv6.h -@@ -126,6 +126,8 @@ struct icmp6hdr { - #define ICMPV6_POLICY_FAIL 5 - #define ICMPV6_REJECT_ROUTE 6 - -+#define ICMPV6_FAILED_POLICY ICMPV6_POLICY_FAIL -+ - /* - * Codes for Time Exceeded - */ ---- a/include/uapi/linux/rtnetlink.h -+++ b/include/uapi/linux/rtnetlink.h -@@ -269,6 +269,8 @@ enum { - __RTN_MAX - }; - -+#define RTN_FAILED_POLICY RTN_POLICY_FAILED -+ - #define RTN_MAX (__RTN_MAX - 1) - - diff --git a/6.11/target/linux/generic/pending-6.11/683-of_net-add-mac-address-to-of-tree.patch b/6.11/target/linux/generic/pending-6.11/683-of_net-add-mac-address-to-of-tree.patch deleted file mode 100644 index 0fb02dbb..00000000 --- a/6.11/target/linux/generic/pending-6.11/683-of_net-add-mac-address-to-of-tree.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 8585756342caa6d27008d1ad0c18023e4211a40a Mon Sep 17 00:00:00 2001 -From: OpenWrt community -Date: Wed, 13 Jul 2022 12:22:48 +0200 -Subject: [PATCH] of/of_net: write back netdev MAC-address to device-tree - -The label-mac logic relies on the mac-address property of a netdev -devices of-node. However, the mac address can also be stored as a -different property or read from e.g. an mtd device. - -Create this node when reading a mac-address from OF if it does not -already exist and copy the mac-address used for the device to this -property. This way, the MAC address can be accessed using procfs. - ---- - net/core/of_net.c | 22 ++++++++++++++++++++++ - 1 file changed, 22 insertions(+) - ---- a/net/core/of_net.c -+++ b/net/core/of_net.c -@@ -97,6 +97,27 @@ int of_get_mac_address_nvmem(struct devi - } - EXPORT_SYMBOL(of_get_mac_address_nvmem); - -+static int of_add_mac_address(struct device_node *np, u8* addr) -+{ -+ struct property *prop; -+ -+ prop = kzalloc(sizeof(*prop), GFP_KERNEL); -+ if (!prop) -+ return -ENOMEM; -+ -+ prop->name = "mac-address"; -+ prop->length = ETH_ALEN; -+ prop->value = kmemdup(addr, ETH_ALEN, GFP_KERNEL); -+ if (!prop->value || of_update_property(np, prop)) -+ goto free; -+ -+ return 0; -+free: -+ kfree(prop->value); -+ kfree(prop); -+ return -ENOMEM; -+} -+ - /** - * of_get_mac_address() - * @np: Caller's Device Node -@@ -132,17 +153,23 @@ int of_get_mac_address(struct device_nod - - ret = of_get_mac_addr(np, "mac-address", addr); - if (!ret) -- return 0; -+ goto found; - - ret = of_get_mac_addr(np, "local-mac-address", addr); - if (!ret) -- return 0; -+ goto found; - - ret = of_get_mac_addr(np, "address", addr); - if (!ret) -- return 0; -+ goto found; - -- return of_get_mac_address_nvmem(np, addr); -+ ret = of_get_mac_address_nvmem(np, addr); -+ if (ret) -+ return ret; -+ -+found: -+ ret = of_add_mac_address(np, addr); -+ return ret; - } - EXPORT_SYMBOL(of_get_mac_address); - diff --git a/6.11/target/linux/generic/pending-6.11/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch b/6.11/target/linux/generic/pending-6.11/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch deleted file mode 100644 index 07e923b6..00000000 --- a/6.11/target/linux/generic/pending-6.11/701-netfilter-nf_tables-ignore-EOPNOTSUPP-on-flowtable-d.patch +++ /dev/null @@ -1,29 +0,0 @@ -From: Felix Fietkau -Date: Thu, 31 Aug 2023 21:48:38 +0200 -Subject: [PATCH] netfilter: nf_tables: ignore -EOPNOTSUPP on flowtable device - offload setup - -On many embedded devices, it is common to configure flowtable offloading for -a mix of different devices, some of which have hardware offload support and -some of which don't. -The current code limits the ability of user space to properly set up such a -configuration by only allowing adding devices with hardware offload support to -a offload-enabled flowtable. -Given that offload-enabled flowtables also imply fallback to pure software -offloading, this limitation makes little sense. -Fix it by not bailing out when the offload setup returns -EOPNOTSUPP - -Signed-off-by: Felix Fietkau ---- - ---- a/net/netfilter/nf_tables_api.c -+++ b/net/netfilter/nf_tables_api.c -@@ -8268,7 +8268,7 @@ static int nft_register_flowtable_net_ho - err = flowtable->data.type->setup(&flowtable->data, - hook->ops.dev, - FLOW_BLOCK_BIND); -- if (err < 0) -+ if (err < 0 && err != -EOPNOTSUPP) - goto err_unregister_net_hooks; - - err = nf_register_net_hook(net, &hook->ops); diff --git a/6.11/target/linux/generic/pending-6.11/703-phy-add-detach-callback-to-struct-phy_driver.patch b/6.11/target/linux/generic/pending-6.11/703-phy-add-detach-callback-to-struct-phy_driver.patch deleted file mode 100644 index c544a06d..00000000 --- a/6.11/target/linux/generic/pending-6.11/703-phy-add-detach-callback-to-struct-phy_driver.patch +++ /dev/null @@ -1,38 +0,0 @@ -From: Gabor Juhos -Subject: generic: add detach callback to struct phy_driver - -lede-commit: fe61fc2d7d0b3fb348b502f68f98243b3ddf5867 - -Signed-off-by: Gabor Juhos ---- - drivers/net/phy/phy_device.c | 3 +++ - include/linux/phy.h | 6 ++++++ - 2 files changed, 9 insertions(+) - ---- a/drivers/net/phy/phy_device.c -+++ b/drivers/net/phy/phy_device.c -@@ -1908,6 +1908,9 @@ void phy_detach(struct phy_device *phyde - if (phydev->devlink) - device_link_del(phydev->devlink); - -+ if (phydev->drv && phydev->drv->detach) -+ phydev->drv->detach(phydev); -+ - if (phydev->sysfs_links) { - if (dev) - sysfs_remove_link(&dev->dev.kobj, "phydev"); ---- a/include/linux/phy.h -+++ b/include/linux/phy.h -@@ -976,6 +976,12 @@ struct phy_driver { - /** @handle_interrupt: Override default interrupt handling */ - irqreturn_t (*handle_interrupt)(struct phy_device *phydev); - -+ /* -+ * Called before an ethernet device is detached -+ * from the PHY. -+ */ -+ void (*detach)(struct phy_device *phydev); -+ - /** @remove: Clears up any memory if needed */ - void (*remove)(struct phy_device *phydev); - diff --git a/6.11/target/linux/generic/pending-6.11/705-net-dsa-tag_mtk-add-padding-for-tx-packets.patch b/6.11/target/linux/generic/pending-6.11/705-net-dsa-tag_mtk-add-padding-for-tx-packets.patch deleted file mode 100644 index f7e4e777..00000000 --- a/6.11/target/linux/generic/pending-6.11/705-net-dsa-tag_mtk-add-padding-for-tx-packets.patch +++ /dev/null @@ -1,28 +0,0 @@ -From: Felix Fietkau -Date: Fri, 6 May 2022 21:38:42 +0200 -Subject: [PATCH] net: dsa: tag_mtk: add padding for tx packets - -Padding for transmitted packets needs to account for the special tag. -With not enough padding, garbage bytes are inserted by the switch at the -end of small packets. - -Fixes: 5cd8985a1909 ("net-next: dsa: add Mediatek tag RX/TX handler") -Signed-off-by: Felix Fietkau ---- - ---- a/net/dsa/tag_mtk.c -+++ b/net/dsa/tag_mtk.c -@@ -29,6 +29,13 @@ static struct sk_buff *mtk_tag_xmit(stru - - skb_set_queue_mapping(skb, dp->index); - -+ /* The Ethernet switch we are interfaced with needs packets to be at -+ * least 64 bytes (including FCS) otherwise their padding might be -+ * corrupted. With tags enabled, we need to make sure that packets are -+ * at least 68 bytes (including FCS and tag). -+ */ -+ eth_skb_pad(skb); -+ - /* Build the special tag after the MAC Source Address. If VLAN header - * is present, it's required that VLAN header and special tag is - * being combined. Only in this way we can allow the switch can parse diff --git a/6.11/target/linux/generic/pending-6.11/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch b/6.11/target/linux/generic/pending-6.11/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch deleted file mode 100644 index 2e5d9564..00000000 --- a/6.11/target/linux/generic/pending-6.11/710-bridge-add-knob-for-filtering-rx-tx-BPDU-pack.patch +++ /dev/null @@ -1,174 +0,0 @@ -From: Felix Fietkau -Date: Fri, 27 Aug 2021 12:22:32 +0200 -Subject: [PATCH] bridge: add knob for filtering rx/tx BPDU packets on a port - -Some devices (e.g. wireless APs) can't have devices behind them be part of -a bridge topology with redundant links, due to address limitations. -Additionally, broadcast traffic on these devices is somewhat expensive, due to -the low data rate and wakeups of clients in powersave mode. -This knob can be used to ensure that BPDU packets are never sent or forwarded -to/from these devices - -Signed-off-by: Felix Fietkau ---- - ---- a/include/linux/if_bridge.h -+++ b/include/linux/if_bridge.h -@@ -61,6 +61,7 @@ struct br_ip_list { - #define BR_PORT_LOCKED BIT(21) - #define BR_PORT_MAB BIT(22) - #define BR_NEIGH_VLAN_SUPPRESS BIT(23) -+#define BR_BPDU_FILTER BIT(24) - - #define BR_DEFAULT_AGEING_TIME (300 * HZ) - ---- a/net/bridge/br_forward.c -+++ b/net/bridge/br_forward.c -@@ -201,6 +201,7 @@ void br_flood(struct net_bridge *br, str - enum br_pkt_type pkt_type, bool local_rcv, bool local_orig, - u16 vid) - { -+ const unsigned char *dest = eth_hdr(skb)->h_dest; - struct net_bridge_port *prev = NULL; - struct net_bridge_port *p; - -@@ -218,6 +219,10 @@ void br_flood(struct net_bridge *br, str - case BR_PKT_MULTICAST: - if (!(p->flags & BR_MCAST_FLOOD) && skb->dev != br->dev) - continue; -+ if ((p->flags & BR_BPDU_FILTER) && -+ unlikely(is_link_local_ether_addr(dest) && -+ dest[5] == 0)) -+ continue; - break; - case BR_PKT_BROADCAST: - if (!(p->flags & BR_BCAST_FLOOD) && skb->dev != br->dev) ---- a/net/bridge/br_input.c -+++ b/net/bridge/br_input.c -@@ -367,6 +367,8 @@ static rx_handler_result_t br_handle_fra - fwd_mask |= p->group_fwd_mask; - switch (dest[5]) { - case 0x00: /* Bridge Group Address */ -+ if (p->flags & BR_BPDU_FILTER) -+ goto drop; - /* If STP is turned off, - then must forward to keep loop detection */ - if (p->br->stp_enabled == BR_NO_STP || ---- a/net/bridge/br_sysfs_if.c -+++ b/net/bridge/br_sysfs_if.c -@@ -240,6 +240,7 @@ BRPORT_ATTR_FLAG(multicast_flood, BR_MCA - BRPORT_ATTR_FLAG(broadcast_flood, BR_BCAST_FLOOD); - BRPORT_ATTR_FLAG(neigh_suppress, BR_NEIGH_SUPPRESS); - BRPORT_ATTR_FLAG(isolated, BR_ISOLATED); -+BRPORT_ATTR_FLAG(bpdu_filter, BR_BPDU_FILTER); - - #ifdef CONFIG_BRIDGE_IGMP_SNOOPING - static ssize_t show_multicast_router(struct net_bridge_port *p, char *buf) -@@ -292,6 +293,7 @@ static const struct brport_attribute *br - &brport_attr_group_fwd_mask, - &brport_attr_neigh_suppress, - &brport_attr_isolated, -+ &brport_attr_bpdu_filter, - &brport_attr_backup_port, - NULL - }; ---- a/net/bridge/br_stp_bpdu.c -+++ b/net/bridge/br_stp_bpdu.c -@@ -80,7 +80,8 @@ void br_send_config_bpdu(struct net_brid - { - unsigned char buf[35]; - -- if (p->br->stp_enabled != BR_KERNEL_STP) -+ if (p->br->stp_enabled != BR_KERNEL_STP || -+ (p->flags & BR_BPDU_FILTER)) - return; - - buf[0] = 0; -@@ -127,7 +128,8 @@ void br_send_tcn_bpdu(struct net_bridge_ - { - unsigned char buf[4]; - -- if (p->br->stp_enabled != BR_KERNEL_STP) -+ if (p->br->stp_enabled != BR_KERNEL_STP || -+ (p->flags & BR_BPDU_FILTER)) - return; - - buf[0] = 0; -@@ -172,6 +174,9 @@ void br_stp_rcv(const struct stp_proto * - if (!(br->dev->flags & IFF_UP)) - goto out; - -+ if (p->flags & BR_BPDU_FILTER) -+ goto out; -+ - if (p->state == BR_STATE_DISABLED) - goto out; - ---- a/include/uapi/linux/if_link.h -+++ b/include/uapi/linux/if_link.h -@@ -571,6 +571,7 @@ enum { - IFLA_BRPORT_MCAST_MAX_GROUPS, - IFLA_BRPORT_NEIGH_VLAN_SUPPRESS, - IFLA_BRPORT_BACKUP_NHID, -+ IFLA_BRPORT_BPDU_FILTER, - __IFLA_BRPORT_MAX - }; - #define IFLA_BRPORT_MAX (__IFLA_BRPORT_MAX - 1) ---- a/net/bridge/br_netlink.c -+++ b/net/bridge/br_netlink.c -@@ -190,6 +190,7 @@ static inline size_t br_port_info_size(v - + nla_total_size(1) /* IFLA_BRPORT_LOCKED */ - + nla_total_size(1) /* IFLA_BRPORT_MAB */ - + nla_total_size(1) /* IFLA_BRPORT_NEIGH_VLAN_SUPPRESS */ -+ + nla_total_size(1) /* IFLA_BRPORT_BPDU_FILTER */ - + nla_total_size(sizeof(struct ifla_bridge_id)) /* IFLA_BRPORT_ROOT_ID */ - + nla_total_size(sizeof(struct ifla_bridge_id)) /* IFLA_BRPORT_BRIDGE_ID */ - + nla_total_size(sizeof(u16)) /* IFLA_BRPORT_DESIGNATED_PORT */ -@@ -282,7 +283,8 @@ static int br_port_fill_attrs(struct sk_ - nla_put_u8(skb, IFLA_BRPORT_LOCKED, !!(p->flags & BR_PORT_LOCKED)) || - nla_put_u8(skb, IFLA_BRPORT_MAB, !!(p->flags & BR_PORT_MAB)) || - nla_put_u8(skb, IFLA_BRPORT_NEIGH_VLAN_SUPPRESS, -- !!(p->flags & BR_NEIGH_VLAN_SUPPRESS))) -+ !!(p->flags & BR_NEIGH_VLAN_SUPPRESS)) || -+ nla_put_u8(skb, IFLA_BRPORT_BPDU_FILTER, !!(p->flags & BR_BPDU_FILTER))) - return -EMSGSIZE; - - timerval = br_timer_value(&p->message_age_timer); -@@ -902,6 +904,7 @@ static const struct nla_policy br_port_p - [IFLA_BRPORT_MCAST_MAX_GROUPS] = { .type = NLA_U32 }, - [IFLA_BRPORT_NEIGH_VLAN_SUPPRESS] = NLA_POLICY_MAX(NLA_U8, 1), - [IFLA_BRPORT_BACKUP_NHID] = { .type = NLA_U32 }, -+ [IFLA_BRPORT_BPDU_FILTER] = { .type = NLA_U8 }, - }; - - /* Change the state of the port and notify spanning tree */ -@@ -970,6 +973,7 @@ static int br_setport(struct net_bridge_ - br_set_port_flag(p, tb, IFLA_BRPORT_MAB, BR_PORT_MAB); - br_set_port_flag(p, tb, IFLA_BRPORT_NEIGH_VLAN_SUPPRESS, - BR_NEIGH_VLAN_SUPPRESS); -+ br_set_port_flag(p, tb, IFLA_BRPORT_BPDU_FILTER, BR_BPDU_FILTER); - - if ((p->flags & BR_PORT_MAB) && - (!(p->flags & BR_PORT_LOCKED) || !(p->flags & BR_LEARNING))) { ---- a/net/core/rtnetlink.c -+++ b/net/core/rtnetlink.c -@@ -61,7 +61,7 @@ - #include "dev.h" - - #define RTNL_MAX_TYPE 50 --#define RTNL_SLAVE_MAX_TYPE 44 -+#define RTNL_SLAVE_MAX_TYPE 45 - - struct rtnl_link { - rtnl_doit_func doit; -@@ -4949,7 +4949,9 @@ int ndo_dflt_bridge_getlink(struct sk_bu - brport_nla_put_flag(skb, flags, mask, - IFLA_BRPORT_MCAST_FLOOD, BR_MCAST_FLOOD) || - brport_nla_put_flag(skb, flags, mask, -- IFLA_BRPORT_BCAST_FLOOD, BR_BCAST_FLOOD)) { -+ IFLA_BRPORT_BCAST_FLOOD, BR_BCAST_FLOOD) || -+ brport_nla_put_flag(skb, flags, mask, -+ IFLA_BRPORT_BPDU_FILTER, BR_BPDU_FILTER)) { - nla_nest_cancel(skb, protinfo); - goto nla_put_failure; - } diff --git a/6.11/target/linux/generic/pending-6.11/711-01-net-dsa-qca8k-implement-lag_fdb_add-del-ops.patch b/6.11/target/linux/generic/pending-6.11/711-01-net-dsa-qca8k-implement-lag_fdb_add-del-ops.patch deleted file mode 100644 index 3197aea0..00000000 --- a/6.11/target/linux/generic/pending-6.11/711-01-net-dsa-qca8k-implement-lag_fdb_add-del-ops.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 3b4329230db8750bea7a56ef07f07cbbf5fc6c5a Mon Sep 17 00:00:00 2001 -From: Christian Marangi -Date: Tue, 4 Jul 2023 22:50:12 +0200 -Subject: [PATCH 19/20] net: dsa: qca8k: implement lag_fdb_add/del ops - -Implement lag_fdb_add/del ops to correctly support using LAG interface. -Qca8k switch supports declaring fdb entry for link aggregation by simply -setting the DES_PORT bits to all the LAG member. - -Signed-off-by: Christian Marangi ---- - drivers/net/dsa/qca/qca8k-8xxx.c | 2 ++ - drivers/net/dsa/qca/qca8k-common.c | 48 ++++++++++++++++++++++++++++++ - drivers/net/dsa/qca/qca8k.h | 6 ++++ - 3 files changed, 56 insertions(+) - ---- a/drivers/net/dsa/qca/qca8k-8xxx.c -+++ b/drivers/net/dsa/qca/qca8k-8xxx.c -@@ -2012,6 +2012,8 @@ static const struct dsa_switch_ops qca8k - .port_fdb_add = qca8k_port_fdb_add, - .port_fdb_del = qca8k_port_fdb_del, - .port_fdb_dump = qca8k_port_fdb_dump, -+ .lag_fdb_add = qca8k_lag_fdb_add, -+ .lag_fdb_del = qca8k_lag_fdb_del, - .port_mdb_add = qca8k_port_mdb_add, - .port_mdb_del = qca8k_port_mdb_del, - .port_mirror_add = qca8k_port_mirror_add, ---- a/drivers/net/dsa/qca/qca8k-common.c -+++ b/drivers/net/dsa/qca/qca8k-common.c -@@ -1215,6 +1215,42 @@ int qca8k_port_lag_leave(struct dsa_swit - return qca8k_lag_refresh_portmap(ds, port, lag, true); - } - -+int qca8k_lag_fdb_add(struct dsa_switch *ds, struct dsa_lag lag, -+ const unsigned char *addr, u16 vid, -+ struct dsa_db db) -+{ -+ struct qca8k_priv *priv = (struct qca8k_priv *)ds->priv; -+ struct dsa_port *dp; -+ u16 port_mask = 0; -+ -+ /* Set the vid to the port vlan id if no vid is set */ -+ if (!vid) -+ vid = QCA8K_PORT_VID_DEF; -+ -+ dsa_lag_foreach_port(dp, ds->dst, &lag) -+ port_mask |= BIT(dp->index); -+ -+ return qca8k_port_fdb_insert(priv, addr, port_mask, vid); -+} -+ -+int qca8k_lag_fdb_del(struct dsa_switch *ds, struct dsa_lag lag, -+ const unsigned char *addr, u16 vid, -+ struct dsa_db db) -+{ -+ struct qca8k_priv *priv = (struct qca8k_priv *)ds->priv; -+ struct dsa_port *dp; -+ u16 port_mask = 0; -+ -+ /* Set the vid to the port vlan id if no vid is set */ -+ if (!vid) -+ vid = QCA8K_PORT_VID_DEF; -+ -+ dsa_lag_foreach_port(dp, ds->dst, &lag) -+ port_mask |= BIT(dp->index); -+ -+ return qca8k_fdb_del(priv, addr, port_mask, vid); -+} -+ - int qca8k_read_switch_id(struct qca8k_priv *priv) - { - u32 val; ---- a/drivers/net/dsa/qca/qca8k.h -+++ b/drivers/net/dsa/qca/qca8k.h -@@ -590,5 +590,11 @@ int qca8k_port_lag_join(struct dsa_switc - struct netlink_ext_ack *extack); - int qca8k_port_lag_leave(struct dsa_switch *ds, int port, - struct dsa_lag lag); -+int qca8k_lag_fdb_add(struct dsa_switch *ds, struct dsa_lag lag, -+ const unsigned char *addr, u16 vid, -+ struct dsa_db db); -+int qca8k_lag_fdb_del(struct dsa_switch *ds, struct dsa_lag lag, -+ const unsigned char *addr, u16 vid, -+ struct dsa_db db); - - #endif /* __QCA8K_H */ diff --git a/6.11/target/linux/generic/pending-6.11/711-02-net-dsa-qca8k-enable-flooding-to-both-CPU-port.patch b/6.11/target/linux/generic/pending-6.11/711-02-net-dsa-qca8k-enable-flooding-to-both-CPU-port.patch deleted file mode 100644 index b1d9f84c..00000000 --- a/6.11/target/linux/generic/pending-6.11/711-02-net-dsa-qca8k-enable-flooding-to-both-CPU-port.patch +++ /dev/null @@ -1,37 +0,0 @@ -From b954d61d9ecfa64450fc178586719dc2a95b92a7 Mon Sep 17 00:00:00 2001 -From: Christian Marangi -Date: Tue, 20 Jun 2023 21:48:24 +0200 -Subject: [PATCH 3/4] net: dsa: qca8k: enable flooding to both CPU port - -To permit a multi-CPU setup, flood all unknown frames to all CPU ports. -Each CPU port should have correct LOOKUP MEMBER configuration to -prevent receiving duplicate packets from user ports. - -Signed-off-by: Christian Marangi ---- - drivers/net/dsa/qca/qca8k-8xxx.c | 13 +++++-------- - 1 file changed, 5 insertions(+), 8 deletions(-) - ---- a/drivers/net/dsa/qca/qca8k-8xxx.c -+++ b/drivers/net/dsa/qca/qca8k-8xxx.c -@@ -1901,15 +1901,12 @@ qca8k_setup(struct dsa_switch *ds) - } - } - -- /* Forward all unknown frames to CPU port for Linux processing -- * Notice that in multi-cpu config only one port should be set -- * for igmp, unknown, multicast and broadcast packet -- */ -+ /* Forward all unknown frames to CPU port for Linux processing */ - ret = qca8k_write(priv, QCA8K_REG_GLOBAL_FW_CTRL1, -- FIELD_PREP(QCA8K_GLOBAL_FW_CTRL1_IGMP_DP_MASK, BIT(cpu_port)) | -- FIELD_PREP(QCA8K_GLOBAL_FW_CTRL1_BC_DP_MASK, BIT(cpu_port)) | -- FIELD_PREP(QCA8K_GLOBAL_FW_CTRL1_MC_DP_MASK, BIT(cpu_port)) | -- FIELD_PREP(QCA8K_GLOBAL_FW_CTRL1_UC_DP_MASK, BIT(cpu_port))); -+ FIELD_PREP(QCA8K_GLOBAL_FW_CTRL1_IGMP_DP_MASK, dsa_cpu_ports(ds)) | -+ FIELD_PREP(QCA8K_GLOBAL_FW_CTRL1_BC_DP_MASK, dsa_cpu_ports(ds)) | -+ FIELD_PREP(QCA8K_GLOBAL_FW_CTRL1_MC_DP_MASK, dsa_cpu_ports(ds)) | -+ FIELD_PREP(QCA8K_GLOBAL_FW_CTRL1_UC_DP_MASK, dsa_cpu_ports(ds))); - if (ret) - return ret; - diff --git a/6.11/target/linux/generic/pending-6.11/712-net-dsa-qca8k-enable-assisted-learning-on-CPU-port.patch b/6.11/target/linux/generic/pending-6.11/712-net-dsa-qca8k-enable-assisted-learning-on-CPU-port.patch deleted file mode 100644 index 18afa1c0..00000000 --- a/6.11/target/linux/generic/pending-6.11/712-net-dsa-qca8k-enable-assisted-learning-on-CPU-port.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 0f6599167c126ce32c85d4f8a1f3d1775a268572 Mon Sep 17 00:00:00 2001 -From: Christian Marangi -Date: Fri, 6 Oct 2023 12:44:00 +0200 -Subject: [PATCH] net: dsa: qca8k: enable assisted learning on CPU port - -Enable assisted learning on CPU port. - -It has been verified that there is a problem in packet roaming -from one BSS to another in the same security settings from one -physical R7800 to another physical R7800 where they are in the -same L2 broadcast domain backhauled/linked together via one -of the ethernet ports. -DHCP will fail to complete and traffic cannot flow for around 300 -seconds. - -Signed-off-by: Christian Marangi ---- - drivers/net/dsa/qca/qca8k-8xxx.c | 14 +++++++++----- - 1 file changed, 9 insertions(+), 5 deletions(-) - ---- a/drivers/net/dsa/qca/qca8k-8xxx.c -+++ b/drivers/net/dsa/qca/qca8k-8xxx.c -@@ -2010,6 +2010,12 @@ qca8k_setup(struct dsa_switch *ds) - dev_err(priv->dev, "failed enabling QCA header mode on port %d", dp->index); - return ret; - } -+ -+ /* Disable learning by default on all ports */ -+ ret = regmap_clear_bits(priv->regmap, QCA8K_PORT_LOOKUP_CTRL(dp->index), -+ QCA8K_PORT_LOOKUP_LEARN); -+ if (ret) -+ return ret; - } - - /* Forward all unknown frames to CPU port for Linux processing */ -@@ -2039,11 +2045,6 @@ qca8k_setup(struct dsa_switch *ds) - if (ret) - return ret; - -- ret = regmap_clear_bits(priv->regmap, QCA8K_PORT_LOOKUP_CTRL(port), -- QCA8K_PORT_LOOKUP_LEARN); -- if (ret) -- return ret; -- - /* For port based vlans to work we need to set the - * default egress vid - */ -@@ -2095,6 +2096,9 @@ qca8k_setup(struct dsa_switch *ds) - /* Set max number of LAGs supported */ - ds->num_lag_ids = QCA8K_NUM_LAGS; - -+ /* HW learn on CPU port is limited and require manual setting */ -+ ds->assisted_learning_on_cpu_port = true; -+ - return 0; - } - diff --git a/6.11/target/linux/generic/pending-6.11/713-03-arm64-dts-qcom-ipq8074-add-clock-frequency-to-MDIO-n.patch b/6.11/target/linux/generic/pending-6.11/713-03-arm64-dts-qcom-ipq8074-add-clock-frequency-to-MDIO-n.patch deleted file mode 100644 index 74cce983..00000000 --- a/6.11/target/linux/generic/pending-6.11/713-03-arm64-dts-qcom-ipq8074-add-clock-frequency-to-MDIO-n.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 3b5a603bf66236b956287909556fd7ad4904450c Mon Sep 17 00:00:00 2001 -From: Christian Marangi -Date: Wed, 24 Jan 2024 19:38:01 +0100 -Subject: [PATCH 3/3] arm64: dts: qcom: ipq8074: add clock-frequency to MDIO - node - -Add clock-frequency to MDIO node to set the MDC rate to 6.25Mhz instead -of using the default value of 390KHz from MDIO default divider. - -Signed-off-by: Christian Marangi ---- - arch/arm64/boot/dts/qcom/ipq8074.dtsi | 2 ++ - 1 file changed, 2 insertions(+) - ---- a/arch/arm64/boot/dts/qcom/ipq8074.dtsi -+++ b/arch/arm64/boot/dts/qcom/ipq8074.dtsi -@@ -275,6 +275,8 @@ - clocks = <&gcc GCC_MDIO_AHB_CLK>; - clock-names = "gcc_mdio_ahb_clk"; - -+ clock-frequency = <6250000>; -+ - status = "disabled"; - }; - diff --git a/6.11/target/linux/generic/pending-6.11/721-net-phy-realtek-rtl8221-allow-to-configure-SERDES-mo.patch b/6.11/target/linux/generic/pending-6.11/721-net-phy-realtek-rtl8221-allow-to-configure-SERDES-mo.patch deleted file mode 100644 index 7e9b3660..00000000 --- a/6.11/target/linux/generic/pending-6.11/721-net-phy-realtek-rtl8221-allow-to-configure-SERDES-mo.patch +++ /dev/null @@ -1,106 +0,0 @@ -From ace6abaa0f9203083fe4c0a6a74da2d96410b625 Mon Sep 17 00:00:00 2001 -From: Alexander Couzens -Date: Sat, 13 Aug 2022 12:49:33 +0200 -Subject: [PATCH 01/10] net: phy: realtek: rtl8221: allow to configure SERDES - mode - -The rtl8221 supports multiple SERDES modes: -- SGMII -- 2500base-x -- HiSGMII - -Further it supports rate adaption on SERDES links to allow -slow ethernet speeds (10/100/1000mbit) to work on 2500base-x/HiSGMII -links without reducing the SERDES speed. - -When operating without rate adapters the SERDES link will follow the -ethernet speed. - -Signed-off-by: Alexander Couzens ---- - drivers/net/phy/realtek.c | 48 +++++++++++++++++++++++++++++++++++++++ - 1 file changed, 48 insertions(+) - ---- a/drivers/net/phy/realtek.c -+++ b/drivers/net/phy/realtek.c -@@ -54,6 +54,15 @@ - RTL8201F_ISR_LINK) - #define RTL8201F_IER 0x13 - -+#define RTL8221B_MMD_SERDES_CTRL MDIO_MMD_VEND1 -+#define RTL8221B_MMD_PHY_CTRL MDIO_MMD_VEND2 -+#define RTL8221B_SERDES_OPTION 0x697a -+#define RTL8221B_SERDES_OPTION_MODE_MASK GENMASK(5, 0) -+#define RTL8221B_SERDES_OPTION_MODE_2500BASEX_SGMII 0 -+#define RTL8221B_SERDES_OPTION_MODE_HISGMII_SGMII 1 -+#define RTL8221B_SERDES_OPTION_MODE_2500BASEX 2 -+#define RTL8221B_SERDES_OPTION_MODE_HISGMII 3 -+ - #define RTL8366RB_POWER_SAVE 0x15 - #define RTL8366RB_POWER_SAVE_ON BIT(12) - -@@ -879,6 +888,48 @@ static irqreturn_t rtl9000a_handle_inter - return IRQ_HANDLED; - } - -+static int rtl8221b_config_init(struct phy_device *phydev) -+{ -+ u16 option_mode; -+ -+ switch (phydev->interface) { -+ case PHY_INTERFACE_MODE_2500BASEX: -+ if (!phydev->is_c45) { -+ option_mode = RTL8221B_SERDES_OPTION_MODE_2500BASEX; -+ break; -+ } -+ fallthrough; -+ case PHY_INTERFACE_MODE_SGMII: -+ option_mode = RTL8221B_SERDES_OPTION_MODE_2500BASEX_SGMII; -+ break; -+ default: -+ return 0; -+ } -+ -+ phy_write_mmd(phydev, RTL8221B_MMD_SERDES_CTRL, -+ 0x75f3, 0); -+ -+ phy_modify_mmd_changed(phydev, RTL8221B_MMD_SERDES_CTRL, -+ RTL8221B_SERDES_OPTION, -+ RTL8221B_SERDES_OPTION_MODE_MASK, option_mode); -+ switch (option_mode) { -+ case RTL8221B_SERDES_OPTION_MODE_2500BASEX_SGMII: -+ case RTL8221B_SERDES_OPTION_MODE_2500BASEX: -+ phy_write_mmd(phydev, RTL8221B_MMD_SERDES_CTRL, 0x6a04, 0x0503); -+ phy_write_mmd(phydev, RTL8221B_MMD_SERDES_CTRL, 0x6f10, 0xd455); -+ phy_write_mmd(phydev, RTL8221B_MMD_SERDES_CTRL, 0x6f11, 0x8020); -+ break; -+ case RTL8221B_SERDES_OPTION_MODE_HISGMII_SGMII: -+ case RTL8221B_SERDES_OPTION_MODE_HISGMII: -+ phy_write_mmd(phydev, RTL8221B_MMD_SERDES_CTRL, 0x6a04, 0x0503); -+ phy_write_mmd(phydev, RTL8221B_MMD_SERDES_CTRL, 0x6f10, 0xd433); -+ phy_write_mmd(phydev, RTL8221B_MMD_SERDES_CTRL, 0x6f11, 0x8020); -+ break; -+ } -+ -+ return 0; -+} -+ - static struct phy_driver realtek_drvs[] = { - { - PHY_ID_MATCH_EXACT(0x00008201), -@@ -1033,6 +1084,7 @@ static struct phy_driver realtek_drvs[] - PHY_ID_MATCH_EXACT(0x001cc849), - .name = "RTL8221B-VB-CG 2.5Gbps PHY", - .get_features = rtl822x_get_features, -+ .config_init = rtl8221b_config_init, - .config_aneg = rtl822x_config_aneg, - .read_status = rtl822x_read_status, - .suspend = genphy_suspend, -@@ -1044,6 +1096,7 @@ static struct phy_driver realtek_drvs[] - .name = "RTL8221B-VM-CG 2.5Gbps PHY", - .get_features = rtl822x_get_features, - .config_aneg = rtl822x_config_aneg, -+ .config_init = rtl8221b_config_init, - .read_status = rtl822x_read_status, - .suspend = genphy_suspend, - .resume = rtlgen_resume, diff --git a/6.11/target/linux/generic/pending-6.11/724-net-phy-realtek-use-genphy_soft_reset-for-2.5G-PHYs.patch b/6.11/target/linux/generic/pending-6.11/724-net-phy-realtek-use-genphy_soft_reset-for-2.5G-PHYs.patch deleted file mode 100644 index 8efedd3a..00000000 --- a/6.11/target/linux/generic/pending-6.11/724-net-phy-realtek-use-genphy_soft_reset-for-2.5G-PHYs.patch +++ /dev/null @@ -1,65 +0,0 @@ -From 85cd45580f5e3b26068cccb7d6173f200e754dc0 Mon Sep 17 00:00:00 2001 -From: Daniel Golle -Date: Sun, 2 Apr 2023 23:56:16 +0100 -Subject: [PATCH 1/2] net: phy: realtek: use genphy_soft_reset for 2.5G PHYs - -Some vendor bootloaders do weird things with those PHYs which result in -link modes being reported wrongly. Start from a clean sheet by resetting -the PHY. - -Reported-by: Yevhen Kolomeiko -Signed-off-by: Daniel Golle ---- - drivers/net/phy/realtek.c | 6 ++++++ - 1 file changed, 6 insertions(+) - ---- a/drivers/net/phy/realtek.c -+++ b/drivers/net/phy/realtek.c -@@ -1070,6 +1070,7 @@ static struct phy_driver realtek_drvs[] - .write_page = rtl821x_write_page, - .read_mmd = rtl822x_read_mmd, - .write_mmd = rtl822x_write_mmd, -+ .soft_reset = genphy_soft_reset, - }, { - PHY_ID_MATCH_EXACT(0x001cc840), - .name = "RTL8226B_RTL8221B 2.5Gbps PHY", -@@ -1082,6 +1083,7 @@ static struct phy_driver realtek_drvs[] - .write_page = rtl821x_write_page, - .read_mmd = rtl822x_read_mmd, - .write_mmd = rtl822x_write_mmd, -+ .soft_reset = genphy_soft_reset, - }, { - PHY_ID_MATCH_EXACT(0x001cc838), - .name = "RTL8226-CG 2.5Gbps PHY", -@@ -1092,6 +1094,7 @@ static struct phy_driver realtek_drvs[] - .resume = rtlgen_resume, - .read_page = rtl821x_read_page, - .write_page = rtl821x_write_page, -+ .soft_reset = genphy_soft_reset, - }, { - PHY_ID_MATCH_EXACT(0x001cc848), - .name = "RTL8226B-CG_RTL8221B-CG 2.5Gbps PHY", -@@ -1102,6 +1105,7 @@ static struct phy_driver realtek_drvs[] - .resume = rtlgen_resume, - .read_page = rtl821x_read_page, - .write_page = rtl821x_write_page, -+ .soft_reset = genphy_soft_reset, - }, { - PHY_ID_MATCH_EXACT(0x001cc849), - .name = "RTL8221B-VB-CG 2.5Gbps PHY", -@@ -1113,6 +1117,7 @@ static struct phy_driver realtek_drvs[] - .resume = rtlgen_resume, - .read_page = rtl821x_read_page, - .write_page = rtl821x_write_page, -+ .soft_reset = genphy_soft_reset, - }, { - PHY_ID_MATCH_EXACT(0x001cc84a), - .name = "RTL8221B-VM-CG 2.5Gbps PHY", -@@ -1124,6 +1129,7 @@ static struct phy_driver realtek_drvs[] - .resume = rtlgen_resume, - .read_page = rtl821x_read_page, - .write_page = rtl821x_write_page, -+ .soft_reset = genphy_soft_reset, - }, { - PHY_ID_MATCH_EXACT(0x001cc961), - .name = "RTL8366RB Gigabit Ethernet", diff --git a/6.11/target/linux/generic/pending-6.11/725-net-phy-realtek-disable-SGMII-in-band-AN-for-2-5G-PHYs.patch b/6.11/target/linux/generic/pending-6.11/725-net-phy-realtek-disable-SGMII-in-band-AN-for-2-5G-PHYs.patch deleted file mode 100644 index 43cf35ab..00000000 --- a/6.11/target/linux/generic/pending-6.11/725-net-phy-realtek-disable-SGMII-in-band-AN-for-2-5G-PHYs.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 2b1b8c4c215af7988136401c902338d091d408a1 Mon Sep 17 00:00:00 2001 -From: Daniel Golle -Date: Mon, 3 Apr 2023 01:21:57 +0300 -Subject: [PATCH 2/2] net: phy: realtek: disable SGMII in-band AN for 2.5G PHYs - -MAC drivers don't use SGMII in-band autonegotiation unless told to do so -in device tree using 'managed = "in-band-status"'. When using MDIO to -access a PHY, in-band-status is unneeded as we have link-status via -MDIO. Switch off SGMII in-band autonegotiation using magic values. - -Reported-by: Chen Minqiang -Reported-by: Chukun Pan -Reported-by: Yevhen Kolomeiko -Tested-by: Yevhen Kolomeiko -Signed-off-by: Daniel Golle ---- - drivers/net/phy/realtek.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - ---- a/drivers/net/phy/realtek.c -+++ b/drivers/net/phy/realtek.c -@@ -913,6 +913,7 @@ static irqreturn_t rtl9000a_handle_inter - static int rtl8221b_config_init(struct phy_device *phydev) - { - u16 option_mode; -+ int val; - - switch (phydev->interface) { - case PHY_INTERFACE_MODE_2500BASEX: -@@ -949,6 +950,13 @@ static int rtl8221b_config_init(struct p - break; - } - -+ /* Disable SGMII AN */ -+ phy_write_mmd(phydev, RTL8221B_MMD_SERDES_CTRL, 0x7588, 0x2); -+ phy_write_mmd(phydev, RTL8221B_MMD_SERDES_CTRL, 0x7589, 0x71d0); -+ phy_write_mmd(phydev, RTL8221B_MMD_SERDES_CTRL, 0x7587, 0x3); -+ phy_read_mmd_poll_timeout(phydev, RTL8221B_MMD_SERDES_CTRL, 0x7587, -+ val, !(val & BIT(0)), 500, 100000, false); -+ - return 0; - } - diff --git a/6.11/target/linux/generic/pending-6.11/726-net-phy-realtek-make-sure-paged-read-is-protected-by.patch b/6.11/target/linux/generic/pending-6.11/726-net-phy-realtek-make-sure-paged-read-is-protected-by.patch deleted file mode 100644 index be86a774..00000000 --- a/6.11/target/linux/generic/pending-6.11/726-net-phy-realtek-make-sure-paged-read-is-protected-by.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 4dd2cc9b91ecb25f278a2c55e07e6455e9000e6b Mon Sep 17 00:00:00 2001 -From: Daniel Golle -Date: Sat, 22 Apr 2023 01:21:14 +0100 -Subject: [PATCH] net: phy: realtek: make sure paged read is protected by mutex - -As we cannot rely on phy_read_paged function before the PHY is -identified, the paged read in rtlgen_supports_2_5gbps needs to be open -coded as it is being called by the match_phy_device function, ie. before -.read_page and .write_page have been populated. - -Make sure it is also protected by the MDIO bus mutex and use -rtl821x_write_page instead of 3 individually locked MDIO bus operations. - -Signed-off-by: Daniel Golle ---- - drivers/net/phy/realtek.c | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - ---- a/drivers/net/phy/realtek.c -+++ b/drivers/net/phy/realtek.c -@@ -765,9 +765,11 @@ static bool rtlgen_supports_2_5gbps(stru - { - int val; - -- phy_write(phydev, RTL821x_PAGE_SELECT, 0xa61); -- val = phy_read(phydev, 0x13); -- phy_write(phydev, RTL821x_PAGE_SELECT, 0); -+ mutex_lock(&phydev->mdio.bus->mdio_lock); -+ rtl821x_write_page(phydev, 0xa61); -+ val = __phy_read(phydev, 0x13); -+ rtl821x_write_page(phydev, 0); -+ mutex_unlock(&phydev->mdio.bus->mdio_lock); - - return val >= 0 && val & RTL_SUPPORTS_2500FULL; - } diff --git a/6.11/target/linux/generic/pending-6.11/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch b/6.11/target/linux/generic/pending-6.11/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch deleted file mode 100644 index 1f07c0f6..00000000 --- a/6.11/target/linux/generic/pending-6.11/731-net-permit-ieee80211_ptr-even-with-no-CFG82111-suppo.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 686c603f67ae87bf21a61b5e4b1564443f41c3ee Mon Sep 17 00:00:00 2001 -From: Christian Marangi -Date: Thu, 20 Oct 2022 03:34:43 +0200 -Subject: [PATCH] net: permit ieee80211_ptr even with no CFG82111 support - -Introduce a new flag CONFIG_CFG80211_HEADERS to compile in ieee80211_ptr -even if CFG80211 support is not compiled in. This is needed for the -backports project and for any downstream wireless driver that loads in -the kernel dynamically. - -Signed-off-by: Christian Marangi ---- - include/linux/netdevice.h | 2 +- - net/batman-adv/hard-interface.c | 2 +- - net/wireless/Kconfig | 4 ++++ - 3 files changed, 6 insertions(+), 2 deletions(-) - ---- a/include/linux/netdevice.h -+++ b/include/linux/netdevice.h -@@ -2243,7 +2243,7 @@ struct net_device { - #if IS_ENABLED(CONFIG_AX25) - void *ax25_ptr; - #endif --#if IS_ENABLED(CONFIG_CFG80211) -+#if IS_ENABLED(CONFIG_CFG80211_HEADERS) - struct wireless_dev *ieee80211_ptr; - #endif - #if IS_ENABLED(CONFIG_IEEE802154) || IS_ENABLED(CONFIG_6LOWPAN) ---- a/net/batman-adv/hard-interface.c -+++ b/net/batman-adv/hard-interface.c -@@ -309,7 +309,7 @@ static bool batadv_is_cfg80211_netdev(st - if (!net_device) - return false; - --#if IS_ENABLED(CONFIG_CFG80211) -+#if IS_ENABLED(CONFIG_CFG80211_HEADERS) - /* cfg80211 drivers have to set ieee80211_ptr */ - if (net_device->ieee80211_ptr) - return true; ---- a/net/wireless/Kconfig -+++ b/net/wireless/Kconfig -@@ -26,6 +26,7 @@ config CFG80211 - # using a different algorithm, though right now they shouldn't - # (this is here rather than below to allow it to be a module) - select CRYPTO_SHA256 if CFG80211_USE_KERNEL_REGDB_KEYS -+ select CFG80211_HEADERS - help - cfg80211 is the Linux wireless LAN (802.11) configuration API. - Enable this if you have a wireless device. -@@ -36,6 +37,9 @@ config CFG80211 - - When built as a module it will be called cfg80211. - -+config CFG80211_HEADERS -+ bool "cfg80211 - headers support" -+ - if CFG80211 - - config NL80211_TESTMODE diff --git a/6.11/target/linux/generic/pending-6.11/732-00-net-ethernet-mtk_eth_soc-compile-out-netsys-v2-code-.patch b/6.11/target/linux/generic/pending-6.11/732-00-net-ethernet-mtk_eth_soc-compile-out-netsys-v2-code-.patch deleted file mode 100644 index cf195231..00000000 --- a/6.11/target/linux/generic/pending-6.11/732-00-net-ethernet-mtk_eth_soc-compile-out-netsys-v2-code-.patch +++ /dev/null @@ -1,44 +0,0 @@ -From: Felix Fietkau -Date: Thu, 27 Oct 2022 23:39:52 +0200 -Subject: [PATCH] net: ethernet: mtk_eth_soc: compile out netsys v2 code - on mt7621 - -Avoid some branches in the hot path on low-end devices with limited CPU power, -and reduce code size - -Signed-off-by: Felix Fietkau ---- - ---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h -+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h -@@ -1334,6 +1334,22 @@ struct mtk_mac { - /* the struct describing the SoC. these are declared in the soc_xyz.c files */ - extern const struct of_device_id of_mtk_match[]; - -+#ifdef CONFIG_SOC_MT7621 -+static inline bool mtk_is_netsys_v1(struct mtk_eth *eth) -+{ -+ return true; -+} -+ -+static inline bool mtk_is_netsys_v2_or_greater(struct mtk_eth *eth) -+{ -+ return false; -+} -+ -+static inline bool mtk_is_netsys_v3_or_greater(struct mtk_eth *eth) -+{ -+ return false; -+} -+#else - static inline bool mtk_is_netsys_v1(struct mtk_eth *eth) - { - return eth->soc->version == 1; -@@ -1348,6 +1364,7 @@ static inline bool mtk_is_netsys_v3_or_g - { - return eth->soc->version > 2; - } -+#endif - - static inline struct mtk_foe_entry * - mtk_foe_get_entry(struct mtk_ppe *ppe, u16 hash) diff --git a/6.11/target/linux/generic/pending-6.11/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch b/6.11/target/linux/generic/pending-6.11/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch deleted file mode 100644 index 3e56661e..00000000 --- a/6.11/target/linux/generic/pending-6.11/732-01-net-ethernet-mtk_eth_soc-work-around-issue-with-send.patch +++ /dev/null @@ -1,102 +0,0 @@ -From: Felix Fietkau -Date: Thu, 3 Nov 2022 12:38:49 +0100 -Subject: [PATCH] net: ethernet: mtk_eth_soc: work around issue with sending - small fragments - -When lots of frames are sent with a number of very small fragments, an -internal FIFO can overflow, causing the DMA engine to lock up lock up and -transmit attempts time out. - -Fix this on MT7986 by increasing the reserved FIFO space. -Fix this on older chips by detecting the presence of small fragments and use -skb_gso_segment + skb_linearize to deal with them. - -Signed-off-by: Felix Fietkau ---- - ---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c -+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - #include - - #include "mtk_eth_soc.h" -@@ -1587,12 +1588,28 @@ static void mtk_wake_queue(struct mtk_et - } - } - -+static bool mtk_skb_has_small_frag(struct sk_buff *skb) -+{ -+ int min_size = 16; -+ int i; -+ -+ if (skb_headlen(skb) < min_size) -+ return true; -+ -+ for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) -+ if (skb_frag_size(&skb_shinfo(skb)->frags[i]) < min_size) -+ return true; -+ -+ return false; -+} -+ - static netdev_tx_t mtk_start_xmit(struct sk_buff *skb, struct net_device *dev) - { - struct mtk_mac *mac = netdev_priv(dev); - struct mtk_eth *eth = mac->hw; - struct mtk_tx_ring *ring = ð->tx_ring; - struct net_device_stats *stats = &dev->stats; -+ struct sk_buff *segs, *next; - bool gso = false; - int tx_num; - -@@ -1614,6 +1631,18 @@ static netdev_tx_t mtk_start_xmit(struct - return NETDEV_TX_BUSY; - } - -+ if (mtk_is_netsys_v1(eth) && -+ skb_is_gso(skb) && mtk_skb_has_small_frag(skb)) { -+ segs = skb_gso_segment(skb, dev->features & ~NETIF_F_ALL_TSO); -+ if (IS_ERR(segs)) -+ goto drop; -+ -+ if (segs) { -+ consume_skb(skb); -+ skb = segs; -+ } -+ } -+ - /* TSO: fill MSS info in tcp checksum field */ - if (skb_is_gso(skb)) { - if (skb_cow_head(skb, 0)) { -@@ -1629,8 +1658,14 @@ static netdev_tx_t mtk_start_xmit(struct - } - } - -- if (mtk_tx_map(skb, dev, tx_num, ring, gso) < 0) -- goto drop; -+ skb_list_walk_safe(skb, skb, next) { -+ if ((mtk_is_netsys_v1(eth) && -+ mtk_skb_has_small_frag(skb) && skb_linearize(skb)) || -+ mtk_tx_map(skb, dev, tx_num, ring, gso) < 0) { -+ stats->tx_dropped++; -+ dev_kfree_skb_any(skb); -+ } -+ } - - if (unlikely(atomic_read(&ring->free_count) <= ring->thresh)) - netif_tx_stop_all_queues(dev); ---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h -+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h -@@ -270,7 +270,7 @@ - #define MTK_CHK_DDONE_EN BIT(28) - #define MTK_DMAD_WR_WDONE BIT(26) - #define MTK_WCOMP_EN BIT(24) --#define MTK_RESV_BUF (0x40 << 16) -+#define MTK_RESV_BUF (0x80 << 16) - #define MTK_MUTLI_CNT (0x4 << 12) - #define MTK_LEAKY_BUCKET_EN BIT(11) - diff --git a/6.11/target/linux/generic/pending-6.11/732-02-net-ethernet-mtk_eth_soc-set-NETIF_F_ALL_TSO.patch b/6.11/target/linux/generic/pending-6.11/732-02-net-ethernet-mtk_eth_soc-set-NETIF_F_ALL_TSO.patch deleted file mode 100644 index bd7a1b96..00000000 --- a/6.11/target/linux/generic/pending-6.11/732-02-net-ethernet-mtk_eth_soc-set-NETIF_F_ALL_TSO.patch +++ /dev/null @@ -1,21 +0,0 @@ -From: Felix Fietkau -Date: Fri, 28 Oct 2022 12:54:48 +0200 -Subject: [PATCH] net: ethernet: mtk_eth_soc: set NETIF_F_ALL_TSO - -Significantly improves performance by avoiding unnecessary segmentation - -Signed-off-by: Felix Fietkau ---- - ---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.h -+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.h -@@ -49,8 +49,7 @@ - #define MTK_HW_FEATURES (NETIF_F_IP_CSUM | \ - NETIF_F_RXCSUM | \ - NETIF_F_HW_VLAN_CTAG_TX | \ -- NETIF_F_SG | NETIF_F_TSO | \ -- NETIF_F_TSO6 | \ -+ NETIF_F_SG | NETIF_F_ALL_TSO | \ - NETIF_F_IPV6_CSUM |\ - NETIF_F_HW_TC) - #define MTK_HW_FEATURES_MT7628 (NETIF_F_SG | NETIF_F_RXCSUM) diff --git a/6.11/target/linux/generic/pending-6.11/733-01-net-ethernet-mtk_eth_soc-use-napi_build_skb.patch b/6.11/target/linux/generic/pending-6.11/733-01-net-ethernet-mtk_eth_soc-use-napi_build_skb.patch deleted file mode 100644 index f8112643..00000000 --- a/6.11/target/linux/generic/pending-6.11/733-01-net-ethernet-mtk_eth_soc-use-napi_build_skb.patch +++ /dev/null @@ -1,30 +0,0 @@ -From: Felix Fietkau -Date: Mon, 20 May 2024 14:29:58 +0200 -Subject: [PATCH] net: ethernet: mtk_eth_soc: use napi_build_skb() - -The napi_build_skb() can reuse the skb in skb cache per CPU or -can allocate skbs in bulk, which helps improve the performance. - -Signed-off-by: Felix Fietkau ---- - ---- a/drivers/net/ethernet/mediatek/mtk_eth_soc.c -+++ b/drivers/net/ethernet/mediatek/mtk_eth_soc.c -@@ -2129,7 +2129,7 @@ static int mtk_poll_rx(struct napi_struc - if (ret != XDP_PASS) - goto skip_rx; - -- skb = build_skb(data, PAGE_SIZE); -+ skb = napi_build_skb(data, PAGE_SIZE); - if (unlikely(!skb)) { - page_pool_put_full_page(ring->page_pool, - page, true); -@@ -2167,7 +2167,7 @@ static int mtk_poll_rx(struct napi_struc - dma_unmap_single(eth->dma_dev, ((u64)trxd.rxd1 | addr64), - ring->buf_size, DMA_FROM_DEVICE); - -- skb = build_skb(data, ring->frag_size); -+ skb = napi_build_skb(data, ring->frag_size); - if (unlikely(!skb)) { - netdev->stats.rx_dropped++; - skb_free_frag(data); diff --git a/6.11/target/linux/generic/pending-6.11/739-01-dt-bindings-phy-mediatek-xfi-tphy-add-new-bindings.patch b/6.11/target/linux/generic/pending-6.11/739-01-dt-bindings-phy-mediatek-xfi-tphy-add-new-bindings.patch deleted file mode 100644 index 1f1c40b1..00000000 --- a/6.11/target/linux/generic/pending-6.11/739-01-dt-bindings-phy-mediatek-xfi-tphy-add-new-bindings.patch +++ /dev/null @@ -1,136 +0,0 @@ -From patchwork Thu Feb 1 21:52:20 2024 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Daniel Golle -X-Patchwork-Id: 13541842 -Date: Thu, 1 Feb 2024 21:52:20 +0000 -From: Daniel Golle -To: Bc-bocun Chen , - Steven Liu , - John Crispin , - Chunfeng Yun , - Vinod Koul , - Kishon Vijay Abraham I , - Rob Herring , - Krzysztof Kozlowski , - Conor Dooley , - Daniel Golle , - Qingfang Deng , - SkyLake Huang , - Matthias Brugger , - AngeloGioacchino Del Regno , - Philipp Zabel , - linux-arm-kernel@lists.infradead.org, - linux-mediatek@lists.infradead.org, linux-phy@lists.infradead.org, - devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, - netdev@vger.kernel.org -Subject: [PATCH 1/2] dt-bindings: phy: mediatek,xfi-tphy: add new bindings -Message-ID: - <702afb0c1246d95c90b22e57105304028bdd3083.1706823233.git.daniel@makrotopia.org> -MIME-Version: 1.0 -Content-Disposition: inline -List-Id: Linux Phy Mailing list - -Add bindings for the MediaTek XFI T-PHY Ethernet SerDes PHY found in the -MediaTek MT7988 SoC which can operate at various interfaces modes: - -via USXGMII PCS: - * USXGMII - * 10GBase-R - * 5GBase-R - -via LynxI SGMII PCS: - * 2500Base-X - * 1000Base-X - * Cisco SGMII (MAC side) - -Signed-off-by: Daniel Golle ---- - .../bindings/phy/mediatek,xfi-tphy.yaml | 80 +++++++++++++++++++ - 1 file changed, 80 insertions(+) - create mode 100644 Documentation/devicetree/bindings/phy/mediatek,xfi-tphy.yaml - ---- /dev/null -+++ b/Documentation/devicetree/bindings/phy/mediatek,xfi-tphy.yaml -@@ -0,0 +1,80 @@ -+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) -+%YAML 1.2 -+--- -+$id: http://devicetree.org/schemas/phy/mediatek,xfi-tphy.yaml# -+$schema: http://devicetree.org/meta-schemas/core.yaml# -+ -+title: MediaTek XFI T-PHY -+ -+maintainers: -+ - Daniel Golle -+ -+description: -+ The MediaTek XFI SerDes T-PHY provides the physical SerDes lanes -+ used by the (10G/5G) USXGMII PCS and (1G/2.5G) LynxI PCS found in -+ MediaTek's 10G-capabale SoCs. -+ -+properties: -+ $nodename: -+ pattern: "^phy@[0-9a-f]+$" -+ -+ compatible: -+ const: mediatek,mt7988-xfi-tphy -+ -+ reg: -+ maxItems: 1 -+ -+ clocks: -+ items: -+ - description: XFI PHY clock -+ - description: XFI register clock -+ -+ clock-names: -+ items: -+ - const: xfipll -+ - const: topxtal -+ -+ resets: -+ items: -+ - description: PEXTP reset -+ -+ mediatek,usxgmii-performance-errata: -+ $ref: /schemas/types.yaml#/definitions/flag -+ description: -+ One instance of the T-PHY on MT7988 suffers from a performance -+ problem in 10GBase-R mode which needs a work-around in the driver. -+ The work-around is enabled using this flag. -+ -+ "#phy-cells": -+ const: 0 -+ -+required: -+ - compatible -+ - reg -+ - clocks -+ - clock-names -+ - resets -+ - "#phy-cells" -+ -+additionalProperties: false -+ -+examples: -+ - | -+ #include -+ soc { -+ #address-cells = <2>; -+ #size-cells = <2>; -+ -+ phy@11f20000 { -+ compatible = "mediatek,mt7988-xfi-tphy"; -+ reg = <0 0x11f20000 0 0x10000>; -+ clocks = <&xfi_pll CLK_XFIPLL_PLL_EN>, -+ <&topckgen CLK_TOP_XFI_PHY_0_XTAL_SEL>; -+ clock-names = "xfipll", "topxtal"; -+ resets = <&watchdog 14>; -+ mediatek,usxgmii-performance-errata; -+ #phy-cells = <0>; -+ }; -+ }; -+ -+... diff --git a/6.11/target/linux/generic/pending-6.11/739-04-dt-bindings-net-pcs-add-bindings-for-MediaTek-USXGMI.patch b/6.11/target/linux/generic/pending-6.11/739-04-dt-bindings-net-pcs-add-bindings-for-MediaTek-USXGMI.patch deleted file mode 100644 index 215bd2ca..00000000 --- a/6.11/target/linux/generic/pending-6.11/739-04-dt-bindings-net-pcs-add-bindings-for-MediaTek-USXGMI.patch +++ /dev/null @@ -1,81 +0,0 @@ -From 7d88d79c0f65b27a92754d7547f7af098b3de67b Mon Sep 17 00:00:00 2001 -From: Daniel Golle -Date: Tue, 12 Dec 2023 03:47:31 +0000 -Subject: [PATCH 4/5] dt-bindings: net: pcs: add bindings for MediaTek USXGMII - PCS - -MediaTek's USXGMII can be found in the MT7988 SoC. We need to access -it in order to configure and monitor the Ethernet SerDes link in -USXGMII, 10GBase-R and 5GBase-R mode. By including a wrapped -legacy 1000Base-X/2500Base-X/Cisco SGMII LynxI PCS as well, those -interface modes are also available. - -Signed-off-by: Daniel Golle ---- - .../bindings/net/pcs/mediatek,usxgmii.yaml | 60 +++++++++++++++++++ - 1 file changed, 60 insertions(+) - create mode 100644 Documentation/devicetree/bindings/net/pcs/mediatek,usxgmii.yaml - ---- /dev/null -+++ b/Documentation/devicetree/bindings/net/pcs/mediatek,usxgmii.yaml -@@ -0,0 +1,60 @@ -+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) -+%YAML 1.2 -+--- -+$id: http://devicetree.org/schemas/net/pcs/mediatek,usxgmii.yaml# -+$schema: http://devicetree.org/meta-schemas/core.yaml# -+ -+title: MediaTek USXGMII PCS -+ -+maintainers: -+ - Daniel Golle -+ -+description: -+ The MediaTek USXGMII PCS provides physical link control and status -+ for USXGMII, 10GBase-R and 5GBase-R links on the SerDes interfaces -+ provided by the PEXTP PHY. -+ In order to also support legacy 2500Base-X, 1000Base-X and Cisco -+ SGMII an existing mediatek,*-sgmiisys LynxI PCS is wrapped to -+ provide those interfaces modes on the same SerDes interfaces shared -+ with the USXGMII PCS. -+ -+properties: -+ $nodename: -+ pattern: "^pcs@[0-9a-f]+$" -+ -+ compatible: -+ const: mediatek,mt7988-usxgmiisys -+ -+ reg: -+ maxItems: 1 -+ -+ clocks: -+ items: -+ - description: USXGMII top-level clock -+ -+ resets: -+ items: -+ - description: XFI reset -+ -+required: -+ - compatible -+ - reg -+ - clocks -+ - resets -+ -+additionalProperties: false -+ -+examples: -+ - | -+ #include -+ #define MT7988_TOPRGU_XFI0_GRST 12 -+ soc { -+ #address-cells = <2>; -+ #size-cells = <2>; -+ usxgmiisys0: pcs@10080000 { -+ compatible = "mediatek,mt7988-usxgmiisys"; -+ reg = <0 0x10080000 0 0x1000>; -+ clocks = <&topckgen CLK_TOP_USXGMII_SBUS_0_SEL>; -+ resets = <&watchdog MT7988_TOPRGU_XFI0_GRST>; -+ }; -+ }; diff --git a/6.11/target/linux/generic/pending-6.11/739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch b/6.11/target/linux/generic/pending-6.11/739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch deleted file mode 100644 index c7fcac3a..00000000 --- a/6.11/target/linux/generic/pending-6.11/739-05-net-pcs-add-driver-for-MediaTek-USXGMII-PCS.patch +++ /dev/null @@ -1,547 +0,0 @@ -From dde0e95fff92e9f5009f3bea75278e0e34a48822 Mon Sep 17 00:00:00 2001 -From: Daniel Golle -Date: Tue, 12 Dec 2023 03:47:47 +0000 -Subject: [PATCH 5/5] net: pcs: add driver for MediaTek USXGMII PCS - -Add driver for USXGMII PCS found in the MediaTek MT7988 SoC and supporting -USXGMII, 10GBase-R and 5GBase-R interface modes. - -Signed-off-by: Daniel Golle ---- - MAINTAINERS | 2 + - drivers/net/pcs/Kconfig | 11 + - drivers/net/pcs/Makefile | 1 + - drivers/net/pcs/pcs-mtk-usxgmii.c | 456 ++++++++++++++++++++++++++++ - include/linux/pcs/pcs-mtk-usxgmii.h | 27 ++ - 5 files changed, 497 insertions(+) - create mode 100644 drivers/net/pcs/pcs-mtk-usxgmii.c - create mode 100644 include/linux/pcs/pcs-mtk-usxgmii.h - ---- a/MAINTAINERS -+++ b/MAINTAINERS -@@ -13356,7 +13356,9 @@ M: Daniel Golle - L: netdev@vger.kernel.org - S: Maintained - F: drivers/net/pcs/pcs-mtk-lynxi.c -+F: drivers/net/pcs/pcs-mtk-usxgmii.c - F: include/linux/pcs/pcs-mtk-lynxi.h -+F: include/linux/pcs/pcs-mtk-usxgmii.h - - MEDIATEK ETHERNET PHY DRIVERS - M: Daniel Golle ---- a/drivers/net/pcs/Kconfig -+++ b/drivers/net/pcs/Kconfig -@@ -25,6 +25,17 @@ config PCS_MTK_LYNXI - This module provides helpers to phylink for managing the LynxI PCS - which is part of MediaTek's SoC and Ethernet switch ICs. - -+config PCS_MTK_USXGMII -+ tristate "MediaTek USXGMII PCS" -+ select PCS_MTK_LYNXI -+ select PHY_MTK_PEXTP -+ select PHYLINK -+ help -+ This module provides a driver for MediaTek's USXGMII PCS supporting -+ 10GBase-R, 5GBase-R and USXGMII interface modes. -+ 1000Base-X, 2500Base-X and Cisco SGMII are supported on the same -+ differential pairs via an embedded LynxI PHY. -+ - config PCS_RZN1_MIIC - tristate "Renesas RZ/N1 MII converter" - depends on OF && (ARCH_RZN1 || COMPILE_TEST) ---- a/drivers/net/pcs/Makefile -+++ b/drivers/net/pcs/Makefile -@@ -7,3 +7,4 @@ obj-$(CONFIG_PCS_XPCS) += pcs_xpcs.o - obj-$(CONFIG_PCS_LYNX) += pcs-lynx.o - obj-$(CONFIG_PCS_MTK_LYNXI) += pcs-mtk-lynxi.o - obj-$(CONFIG_PCS_RZN1_MIIC) += pcs-rzn1-miic.o -+obj-$(CONFIG_PCS_MTK_USXGMII) += pcs-mtk-usxgmii.o ---- /dev/null -+++ b/drivers/net/pcs/pcs-mtk-usxgmii.c -@@ -0,0 +1,456 @@ -+// SPDX-License-Identifier: GPL-2.0 -+/* -+ * Copyright (c) 2023 MediaTek Inc. -+ * Author: Henry Yen -+ * Daniel Golle -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+/* USXGMII subsystem config registers */ -+/* Register to control speed */ -+#define RG_PHY_TOP_SPEED_CTRL1 0x80c -+#define USXGMII_RATE_UPDATE_MODE BIT(31) -+#define USXGMII_MAC_CK_GATED BIT(29) -+#define USXGMII_IF_FORCE_EN BIT(28) -+#define USXGMII_RATE_ADAPT_MODE GENMASK(10, 8) -+#define USXGMII_RATE_ADAPT_MODE_X1 0 -+#define USXGMII_RATE_ADAPT_MODE_X2 1 -+#define USXGMII_RATE_ADAPT_MODE_X4 2 -+#define USXGMII_RATE_ADAPT_MODE_X10 3 -+#define USXGMII_RATE_ADAPT_MODE_X100 4 -+#define USXGMII_RATE_ADAPT_MODE_X5 5 -+#define USXGMII_RATE_ADAPT_MODE_X50 6 -+#define USXGMII_XFI_RX_MODE GENMASK(6, 4) -+#define USXGMII_XFI_TX_MODE GENMASK(2, 0) -+#define USXGMII_XFI_MODE_10G 0 -+#define USXGMII_XFI_MODE_5G 1 -+#define USXGMII_XFI_MODE_2P5G 3 -+ -+/* Register to control PCS AN */ -+#define RG_PCS_AN_CTRL0 0x810 -+#define USXGMII_AN_RESTART BIT(31) -+#define USXGMII_AN_SYNC_CNT GENMASK(30, 11) -+#define USXGMII_AN_ENABLE BIT(0) -+ -+#define RG_PCS_AN_CTRL2 0x818 -+#define USXGMII_LINK_TIMER_IDLE_DETECT GENMASK(29, 20) -+#define USXGMII_LINK_TIMER_COMP_ACK_DETECT GENMASK(19, 10) -+#define USXGMII_LINK_TIMER_AN_RESTART GENMASK(9, 0) -+ -+/* Register to read PCS AN status */ -+#define RG_PCS_AN_STS0 0x81c -+#define USXGMII_LPA GENMASK(15, 0) -+#define USXGMII_LPA_LATCH BIT(31) -+ -+/* Register to read PCS link status */ -+#define RG_PCS_RX_STATUS0 0x904 -+#define RG_PCS_RX_STATUS_UPDATE BIT(16) -+#define RG_PCS_RX_LINK_STATUS BIT(2) -+ -+/* struct mtk_usxgmii_pcs - This structure holds each usxgmii PCS -+ * @pcs: Phylink PCS structure -+ * @dev: Pointer to device structure -+ * @base: IO memory to access PCS hardware -+ * @clk: Pointer to USXGMII clk -+ * @reset: Pointer to USXGMII reset control -+ * @interface: Currently selected interface mode -+ * @neg_mode: Currently used phylink neg_mode -+ * @node: List node -+ */ -+struct mtk_usxgmii_pcs { -+ struct phylink_pcs pcs; -+ struct device *dev; -+ void __iomem *base; -+ struct clk *clk; -+ struct reset_control *reset; -+ phy_interface_t interface; -+ unsigned int neg_mode; -+ struct list_head node; -+}; -+ -+static LIST_HEAD(mtk_usxgmii_pcs_instances); -+static DEFINE_MUTEX(instance_mutex); -+ -+static u32 mtk_r32(struct mtk_usxgmii_pcs *mpcs, unsigned int reg) -+{ -+ return ioread32(mpcs->base + reg); -+} -+ -+static void mtk_m32(struct mtk_usxgmii_pcs *mpcs, unsigned int reg, u32 mask, u32 set) -+{ -+ u32 val; -+ -+ val = ioread32(mpcs->base + reg); -+ val &= ~mask; -+ val |= set; -+ iowrite32(val, mpcs->base + reg); -+} -+ -+static struct mtk_usxgmii_pcs *pcs_to_mtk_usxgmii_pcs(struct phylink_pcs *pcs) -+{ -+ return container_of(pcs, struct mtk_usxgmii_pcs, pcs); -+} -+ -+static void mtk_usxgmii_reset(struct mtk_usxgmii_pcs *mpcs) -+{ -+ reset_control_assert(mpcs->reset); -+ udelay(100); -+ reset_control_deassert(mpcs->reset); -+ -+ mdelay(10); -+} -+ -+static int mtk_usxgmii_pcs_config(struct phylink_pcs *pcs, unsigned int neg_mode, -+ phy_interface_t interface, -+ const unsigned long *advertising, -+ bool permit_pause_to_mac) -+{ -+ struct mtk_usxgmii_pcs *mpcs = pcs_to_mtk_usxgmii_pcs(pcs); -+ unsigned int an_ctrl = 0, link_timer = 0, xfi_mode = 0, adapt_mode = 0; -+ bool mode_changed = false; -+ -+ if (interface == PHY_INTERFACE_MODE_USXGMII) { -+ an_ctrl = FIELD_PREP(USXGMII_AN_SYNC_CNT, 0x1FF) | USXGMII_AN_ENABLE; -+ link_timer = FIELD_PREP(USXGMII_LINK_TIMER_IDLE_DETECT, 0x7B) | -+ FIELD_PREP(USXGMII_LINK_TIMER_COMP_ACK_DETECT, 0x7B) | -+ FIELD_PREP(USXGMII_LINK_TIMER_AN_RESTART, 0x7B); -+ xfi_mode = FIELD_PREP(USXGMII_XFI_RX_MODE, USXGMII_XFI_MODE_10G) | -+ FIELD_PREP(USXGMII_XFI_TX_MODE, USXGMII_XFI_MODE_10G); -+ } else if (interface == PHY_INTERFACE_MODE_10GBASER) { -+ an_ctrl = FIELD_PREP(USXGMII_AN_SYNC_CNT, 0x1FF); -+ link_timer = FIELD_PREP(USXGMII_LINK_TIMER_IDLE_DETECT, 0x7B) | -+ FIELD_PREP(USXGMII_LINK_TIMER_COMP_ACK_DETECT, 0x7B) | -+ FIELD_PREP(USXGMII_LINK_TIMER_AN_RESTART, 0x7B); -+ xfi_mode = FIELD_PREP(USXGMII_XFI_RX_MODE, USXGMII_XFI_MODE_10G) | -+ FIELD_PREP(USXGMII_XFI_TX_MODE, USXGMII_XFI_MODE_10G); -+ adapt_mode = USXGMII_RATE_UPDATE_MODE; -+ } else if (interface == PHY_INTERFACE_MODE_5GBASER) { -+ an_ctrl = FIELD_PREP(USXGMII_AN_SYNC_CNT, 0xFF); -+ link_timer = FIELD_PREP(USXGMII_LINK_TIMER_IDLE_DETECT, 0x3D) | -+ FIELD_PREP(USXGMII_LINK_TIMER_COMP_ACK_DETECT, 0x3D) | -+ FIELD_PREP(USXGMII_LINK_TIMER_AN_RESTART, 0x3D); -+ xfi_mode = FIELD_PREP(USXGMII_XFI_RX_MODE, USXGMII_XFI_MODE_5G) | -+ FIELD_PREP(USXGMII_XFI_TX_MODE, USXGMII_XFI_MODE_5G); -+ adapt_mode = USXGMII_RATE_UPDATE_MODE; -+ } else { -+ return -EINVAL; -+ } -+ -+ adapt_mode |= FIELD_PREP(USXGMII_RATE_ADAPT_MODE, USXGMII_RATE_ADAPT_MODE_X1); -+ -+ if (mpcs->interface != interface) { -+ mpcs->interface = interface; -+ mode_changed = true; -+ } -+ -+ mtk_usxgmii_reset(mpcs); -+ -+ /* Setup USXGMII AN ctrl */ -+ mtk_m32(mpcs, RG_PCS_AN_CTRL0, -+ USXGMII_AN_SYNC_CNT | USXGMII_AN_ENABLE, -+ an_ctrl); -+ -+ mtk_m32(mpcs, RG_PCS_AN_CTRL2, -+ USXGMII_LINK_TIMER_IDLE_DETECT | -+ USXGMII_LINK_TIMER_COMP_ACK_DETECT | -+ USXGMII_LINK_TIMER_AN_RESTART, -+ link_timer); -+ -+ mpcs->neg_mode = neg_mode; -+ -+ /* Gated MAC CK */ -+ mtk_m32(mpcs, RG_PHY_TOP_SPEED_CTRL1, -+ USXGMII_MAC_CK_GATED, USXGMII_MAC_CK_GATED); -+ -+ /* Enable interface force mode */ -+ mtk_m32(mpcs, RG_PHY_TOP_SPEED_CTRL1, -+ USXGMII_IF_FORCE_EN, USXGMII_IF_FORCE_EN); -+ -+ /* Setup USXGMII adapt mode */ -+ mtk_m32(mpcs, RG_PHY_TOP_SPEED_CTRL1, -+ USXGMII_RATE_UPDATE_MODE | USXGMII_RATE_ADAPT_MODE, -+ adapt_mode); -+ -+ /* Setup USXGMII speed */ -+ mtk_m32(mpcs, RG_PHY_TOP_SPEED_CTRL1, -+ USXGMII_XFI_RX_MODE | USXGMII_XFI_TX_MODE, -+ xfi_mode); -+ -+ usleep_range(1, 10); -+ -+ /* Un-gated MAC CK */ -+ mtk_m32(mpcs, RG_PHY_TOP_SPEED_CTRL1, USXGMII_MAC_CK_GATED, 0); -+ -+ usleep_range(1, 10); -+ -+ /* Disable interface force mode for the AN mode */ -+ if (an_ctrl & USXGMII_AN_ENABLE) -+ mtk_m32(mpcs, RG_PHY_TOP_SPEED_CTRL1, USXGMII_IF_FORCE_EN, 0); -+ -+ return mode_changed; -+} -+ -+static void mtk_usxgmii_pcs_get_fixed_speed(struct mtk_usxgmii_pcs *mpcs, -+ struct phylink_link_state *state) -+{ -+ u32 val = mtk_r32(mpcs, RG_PHY_TOP_SPEED_CTRL1); -+ int speed; -+ -+ /* Calculate speed from interface speed and rate adapt mode */ -+ switch (FIELD_GET(USXGMII_XFI_RX_MODE, val)) { -+ case USXGMII_XFI_MODE_10G: -+ speed = 10000; -+ break; -+ case USXGMII_XFI_MODE_5G: -+ speed = 5000; -+ break; -+ case USXGMII_XFI_MODE_2P5G: -+ speed = 2500; -+ break; -+ default: -+ state->speed = SPEED_UNKNOWN; -+ return; -+ } -+ -+ switch (FIELD_GET(USXGMII_RATE_ADAPT_MODE, val)) { -+ case USXGMII_RATE_ADAPT_MODE_X100: -+ speed /= 100; -+ break; -+ case USXGMII_RATE_ADAPT_MODE_X50: -+ speed /= 50; -+ break; -+ case USXGMII_RATE_ADAPT_MODE_X10: -+ speed /= 10; -+ break; -+ case USXGMII_RATE_ADAPT_MODE_X5: -+ speed /= 5; -+ break; -+ case USXGMII_RATE_ADAPT_MODE_X4: -+ speed /= 4; -+ break; -+ case USXGMII_RATE_ADAPT_MODE_X2: -+ speed /= 2; -+ break; -+ case USXGMII_RATE_ADAPT_MODE_X1: -+ break; -+ default: -+ state->speed = SPEED_UNKNOWN; -+ return; -+ } -+ -+ state->speed = speed; -+ state->duplex = DUPLEX_FULL; -+} -+ -+static void mtk_usxgmii_pcs_get_an_state(struct mtk_usxgmii_pcs *mpcs, -+ struct phylink_link_state *state) -+{ -+ u16 lpa; -+ -+ /* Refresh LPA by toggling LPA_LATCH */ -+ mtk_m32(mpcs, RG_PCS_AN_STS0, USXGMII_LPA_LATCH, USXGMII_LPA_LATCH); -+ ndelay(1020); -+ mtk_m32(mpcs, RG_PCS_AN_STS0, USXGMII_LPA_LATCH, 0); -+ ndelay(1020); -+ lpa = FIELD_GET(USXGMII_LPA, mtk_r32(mpcs, RG_PCS_AN_STS0)); -+ -+ phylink_decode_usxgmii_word(state, lpa); -+} -+ -+static void mtk_usxgmii_pcs_get_state(struct phylink_pcs *pcs, -+ struct phylink_link_state *state) -+{ -+ struct mtk_usxgmii_pcs *mpcs = pcs_to_mtk_usxgmii_pcs(pcs); -+ -+ /* Refresh USXGMII link status by toggling RG_PCS_AN_STATUS_UPDATE */ -+ mtk_m32(mpcs, RG_PCS_RX_STATUS0, RG_PCS_RX_STATUS_UPDATE, -+ RG_PCS_RX_STATUS_UPDATE); -+ ndelay(1020); -+ mtk_m32(mpcs, RG_PCS_RX_STATUS0, RG_PCS_RX_STATUS_UPDATE, 0); -+ ndelay(1020); -+ -+ /* Read USXGMII link status */ -+ state->link = FIELD_GET(RG_PCS_RX_LINK_STATUS, -+ mtk_r32(mpcs, RG_PCS_RX_STATUS0)); -+ -+ /* Continuously repeat re-configuration sequence until link comes up */ -+ if (!state->link) { -+ mtk_usxgmii_pcs_config(pcs, mpcs->neg_mode, -+ state->interface, NULL, false); -+ return; -+ } -+ -+ if (FIELD_GET(USXGMII_AN_ENABLE, mtk_r32(mpcs, RG_PCS_AN_CTRL0))) -+ mtk_usxgmii_pcs_get_an_state(mpcs, state); -+ else -+ mtk_usxgmii_pcs_get_fixed_speed(mpcs, state); -+} -+ -+static void mtk_usxgmii_pcs_restart_an(struct phylink_pcs *pcs) -+{ -+ struct mtk_usxgmii_pcs *mpcs = pcs_to_mtk_usxgmii_pcs(pcs); -+ -+ mtk_m32(mpcs, RG_PCS_AN_CTRL0, USXGMII_AN_RESTART, USXGMII_AN_RESTART); -+} -+ -+static void mtk_usxgmii_pcs_link_up(struct phylink_pcs *pcs, unsigned int neg_mode, -+ phy_interface_t interface, -+ int speed, int duplex) -+{ -+ /* Reconfiguring USXGMII to ensure the quality of the RX signal -+ * after the line side link up. -+ */ -+ mtk_usxgmii_pcs_config(pcs, neg_mode, interface, NULL, false); -+} -+ -+static void mtk_usxgmii_pcs_disable(struct phylink_pcs *pcs) -+{ -+ struct mtk_usxgmii_pcs *mpcs = pcs_to_mtk_usxgmii_pcs(pcs); -+ -+ mpcs->interface = PHY_INTERFACE_MODE_NA; -+ mpcs->neg_mode = -1; -+} -+ -+static const struct phylink_pcs_ops mtk_usxgmii_pcs_ops = { -+ .pcs_config = mtk_usxgmii_pcs_config, -+ .pcs_get_state = mtk_usxgmii_pcs_get_state, -+ .pcs_an_restart = mtk_usxgmii_pcs_restart_an, -+ .pcs_link_up = mtk_usxgmii_pcs_link_up, -+ .pcs_disable = mtk_usxgmii_pcs_disable, -+}; -+ -+static int mtk_usxgmii_probe(struct platform_device *pdev) -+{ -+ struct device *dev = &pdev->dev; -+ struct mtk_usxgmii_pcs *mpcs; -+ -+ mpcs = devm_kzalloc(dev, sizeof(*mpcs), GFP_KERNEL); -+ if (!mpcs) -+ return -ENOMEM; -+ -+ mpcs->base = devm_platform_ioremap_resource(pdev, 0); -+ if (IS_ERR(mpcs->base)) -+ return PTR_ERR(mpcs->base); -+ -+ mpcs->dev = dev; -+ mpcs->pcs.ops = &mtk_usxgmii_pcs_ops; -+ mpcs->pcs.poll = true; -+ mpcs->pcs.neg_mode = true; -+ mpcs->interface = PHY_INTERFACE_MODE_NA; -+ mpcs->neg_mode = -1; -+ -+ mpcs->clk = devm_clk_get_enabled(mpcs->dev, NULL); -+ if (IS_ERR(mpcs->clk)) -+ return PTR_ERR(mpcs->clk); -+ -+ mpcs->reset = devm_reset_control_get_shared(dev, NULL); -+ if (IS_ERR(mpcs->reset)) -+ return PTR_ERR(mpcs->reset); -+ -+ reset_control_deassert(mpcs->reset); -+ -+ platform_set_drvdata(pdev, mpcs); -+ -+ mutex_lock(&instance_mutex); -+ list_add_tail(&mpcs->node, &mtk_usxgmii_pcs_instances); -+ mutex_unlock(&instance_mutex); -+ -+ return 0; -+} -+ -+static int mtk_usxgmii_remove(struct platform_device *pdev) -+{ -+ struct device *dev = &pdev->dev; -+ struct mtk_usxgmii_pcs *cur, *tmp; -+ -+ mutex_lock(&instance_mutex); -+ list_for_each_entry_safe(cur, tmp, &mtk_usxgmii_pcs_instances, node) -+ if (cur->dev == dev) { -+ list_del(&cur->node); -+ break; -+ } -+ mutex_unlock(&instance_mutex); -+ -+ return 0; -+} -+ -+static const struct of_device_id mtk_usxgmii_of_mtable[] = { -+ { .compatible = "mediatek,mt7988-usxgmiisys" }, -+ { /* sentinel */ }, -+}; -+MODULE_DEVICE_TABLE(of, mtk_usxgmii_of_mtable); -+ -+struct phylink_pcs *mtk_usxgmii_pcs_get(struct device *dev, struct device_node *np) -+{ -+ struct platform_device *pdev; -+ struct mtk_usxgmii_pcs *mpcs; -+ -+ if (!np) -+ return NULL; -+ -+ if (!of_device_is_available(np)) -+ return ERR_PTR(-ENODEV); -+ -+ if (!of_match_node(mtk_usxgmii_of_mtable, np)) -+ return ERR_PTR(-EINVAL); -+ -+ pdev = of_find_device_by_node(np); -+ if (!pdev || !platform_get_drvdata(pdev)) { -+ if (pdev) -+ put_device(&pdev->dev); -+ return ERR_PTR(-EPROBE_DEFER); -+ } -+ -+ mpcs = platform_get_drvdata(pdev); -+ device_link_add(dev, mpcs->dev, DL_FLAG_AUTOREMOVE_CONSUMER); -+ -+ return &mpcs->pcs; -+} -+EXPORT_SYMBOL(mtk_usxgmii_pcs_get); -+ -+void mtk_usxgmii_pcs_put(struct phylink_pcs *pcs) -+{ -+ struct mtk_usxgmii_pcs *cur, *mpcs = NULL; -+ -+ if (!pcs) -+ return; -+ -+ mutex_lock(&instance_mutex); -+ list_for_each_entry(cur, &mtk_usxgmii_pcs_instances, node) -+ if (pcs == &cur->pcs) { -+ mpcs = cur; -+ break; -+ } -+ mutex_unlock(&instance_mutex); -+ -+ if (WARN_ON(!mpcs)) -+ return; -+ -+ put_device(mpcs->dev); -+} -+EXPORT_SYMBOL(mtk_usxgmii_pcs_put); -+ -+static struct platform_driver mtk_usxgmii_driver = { -+ .driver = { -+ .name = "mtk_usxgmii", -+ .suppress_bind_attrs = true, -+ .of_match_table = mtk_usxgmii_of_mtable, -+ }, -+ .probe = mtk_usxgmii_probe, -+ .remove = mtk_usxgmii_remove, -+}; -+module_platform_driver(mtk_usxgmii_driver); -+ -+MODULE_LICENSE("GPL"); -+MODULE_DESCRIPTION("MediaTek USXGMII PCS driver"); -+MODULE_AUTHOR("Daniel Golle "); ---- /dev/null -+++ b/include/linux/pcs/pcs-mtk-usxgmii.h -@@ -0,0 +1,27 @@ -+/* SPDX-License-Identifier: GPL-2.0 */ -+#ifndef __LINUX_PCS_MTK_USXGMII_H -+#define __LINUX_PCS_MTK_USXGMII_H -+ -+#include -+ -+/** -+ * mtk_usxgmii_select_pcs() - Get MediaTek PCS instance -+ * @np: Pointer to device node indentifying a MediaTek USXGMII PCS -+ * @mode: Ethernet PHY interface mode -+ * -+ * Return PCS identified by a device node and the PHY interface mode in use -+ * -+ * Return: Pointer to phylink PCS instance of NULL -+ */ -+#if IS_ENABLED(CONFIG_PCS_MTK_USXGMII) -+struct phylink_pcs *mtk_usxgmii_pcs_get(struct device *dev, struct device_node *np); -+void mtk_usxgmii_pcs_put(struct phylink_pcs *pcs); -+#else -+static inline struct phylink_pcs *mtk_usxgmii_pcs_get(struct device *dev, struct device_node *np) -+{ -+ return NULL; -+} -+static inline void mtk_usxgmii_pcs_put(struct phylink_pcs *pcs) { } -+#endif /* IS_ENABLED(CONFIG_PCS_MTK_USXGMII) */ -+ -+#endif /* __LINUX_PCS_MTK_USXGMII_H */ diff --git a/6.11/target/linux/generic/pending-6.11/740-net-phy-motorcomm-Add-missing-include.patch b/6.11/target/linux/generic/pending-6.11/740-net-phy-motorcomm-Add-missing-include.patch deleted file mode 100644 index 2a1f908c..00000000 --- a/6.11/target/linux/generic/pending-6.11/740-net-phy-motorcomm-Add-missing-include.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 6f291aa7da199c6486cc229b055dcbcd5cee7a21 Mon Sep 17 00:00:00 2001 -From: Hauke Mehrtens -Date: Sun, 21 May 2023 22:24:56 +0200 -Subject: [PATCH] net: phy: motorcomm: Add missing include - -Directly include linux/bitfield.h which provides FIELD_PREP. - -Signed-off-by: Hauke Mehrtens ---- - drivers/net/phy/motorcomm.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/drivers/net/phy/motorcomm.c -+++ b/drivers/net/phy/motorcomm.c -@@ -6,6 +6,7 @@ - * Author: Frank - */ - -+#include - #include - #include - #include diff --git a/6.11/target/linux/generic/pending-6.11/742-net-phy-air_en8811h-reset-netdev-rules-when-LED-is-s.patch b/6.11/target/linux/generic/pending-6.11/742-net-phy-air_en8811h-reset-netdev-rules-when-LED-is-s.patch deleted file mode 100644 index 500567b4..00000000 --- a/6.11/target/linux/generic/pending-6.11/742-net-phy-air_en8811h-reset-netdev-rules-when-LED-is-s.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 9be9a00adfac8118b6d685e71696f83187308c66 Mon Sep 17 00:00:00 2001 -Message-ID: <9be9a00adfac8118b6d685e71696f83187308c66.1715125851.git.daniel@makrotopia.org> -From: Daniel Golle -Date: Tue, 7 May 2024 22:43:30 +0100 -Subject: [PATCH net] net: phy: air_en8811h: reset netdev rules when LED is set - manually -To: Andrew Lunn , - Heiner Kallweit , - Russell King , - David S. Miller , - Eric Dumazet , - Jakub Kicinski , - Paolo Abeni , - SkyLake Huang , - Eric Woudstra , - netdev@vger.kernel.org, - linux-kernel@vger.kernel.org - -Setting LED_OFF via the brightness_set should deactivate hw control, -so make sure netdev trigger rules also get cleared in that case. - -Fixes: 71e79430117d ("net: phy: air_en8811h: Add the Airoha EN8811H PHY driver") -Signed-off-by: Daniel Golle ---- -This is basically a stop-gap measure until unified LED handling has -been implemented accross all MediaTek and Airoha PHYs. -See also -https://patchwork.kernel.org/project/netdevbpf/patch/20240425023325.15586-3-SkyLake.Huang@mediatek.com/ - - drivers/net/phy/air_en8811h.c | 4 ++++ - 1 file changed, 4 insertions(+) - ---- a/drivers/net/phy/air_en8811h.c -+++ b/drivers/net/phy/air_en8811h.c -@@ -544,6 +544,10 @@ static int air_hw_led_on_set(struct phy_ - - changed |= (priv->led[index].rules != 0); - -+ /* clear netdev trigger rules in case LED_OFF has been set */ -+ if (!on) -+ priv->led[index].rules = 0; -+ - if (changed) - return phy_modify_mmd(phydev, MDIO_MMD_VEND2, - AIR_PHY_LED_ON(index), diff --git a/6.11/target/linux/generic/pending-6.11/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch b/6.11/target/linux/generic/pending-6.11/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch deleted file mode 100644 index 56a015b7..00000000 --- a/6.11/target/linux/generic/pending-6.11/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch +++ /dev/null @@ -1,27 +0,0 @@ -From: Tobias Waldekranz -Subject: [RFC net-next 7/7] net: dsa: mv88e6xxx: Request assisted learning on CPU port -Date: Sat, 16 Jan 2021 02:25:15 +0100 -Archived-At: - -While the hardware is capable of performing learning on the CPU port, -it requires alot of additions to the bridge's forwarding path in order -to handle multi-destination traffic correctly. - -Until that is in place, opt for the next best thing and let DSA sync -the relevant addresses down to the hardware FDB. - -Signed-off-by: Tobias Waldekranz ---- - drivers/net/dsa/mv88e6xxx/chip.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/drivers/net/dsa/mv88e6xxx/chip.c -+++ b/drivers/net/dsa/mv88e6xxx/chip.c -@@ -6989,6 +6989,7 @@ static int mv88e6xxx_register_switch(str - ds->ops = &mv88e6xxx_switch_ops; - ds->ageing_time_min = chip->info->age_time_coeff; - ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX; -+ ds->assisted_learning_on_cpu_port = true; - - /* Some chips support up to 32, but that requires enabling the - * 5-bit port mode, which we do not support. 640k^W16 ought to diff --git a/6.11/target/linux/generic/pending-6.11/779-net-vxlan-don-t-learn-non-unicast-L2-destinations.patch b/6.11/target/linux/generic/pending-6.11/779-net-vxlan-don-t-learn-non-unicast-L2-destinations.patch deleted file mode 100644 index 551855a2..00000000 --- a/6.11/target/linux/generic/pending-6.11/779-net-vxlan-don-t-learn-non-unicast-L2-destinations.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 3f1a227cb071f65f6ecc4db9f399649869735a7c Mon Sep 17 00:00:00 2001 -From: David Bauer -Date: Sat, 17 Feb 2024 22:34:59 +0100 -Subject: [PATCH] net vxlan: don't learn non-unicast L2 destinations - -This patch avoids learning non-unicast targets in the vxlan FDB. -They are non-unicast and thus should be sent to the broadcast-IPv6 -instead of a unicast address. - -Link: https://lore.kernel.org/netdev/15ee0cc7-9252-466b-8ce7-5225d605dde8@david-bauer.net/ -Link: https://github.com/freifunk-gluon/gluon/issues/3191 - -Signed-off-by: David Bauer ---- - drivers/net/vxlan.c | 4 ++++ - 1 file changed, 4 insertions(+) - ---- a/drivers/net/vxlan/vxlan_core.c -+++ b/drivers/net/vxlan/vxlan_core.c -@@ -1446,6 +1446,10 @@ static bool vxlan_snoop(struct net_devic - struct vxlan_fdb *f; - u32 ifindex = 0; - -+ /* Don't learn broadcast packets */ -+ if (is_multicast_ether_addr(src_mac) || is_zero_ether_addr(src_mac)) -+ return false; -+ - #if IS_ENABLED(CONFIG_IPV6) - if (src_ip->sa.sa_family == AF_INET6 && - (ipv6_addr_type(&src_ip->sin6.sin6_addr) & IPV6_ADDR_LINKLOCAL)) diff --git a/6.11/target/linux/generic/pending-6.11/780-ARM-kirkwood-add-missing-linux-if_ether.h-for-ETH_AL.patch b/6.11/target/linux/generic/pending-6.11/780-ARM-kirkwood-add-missing-linux-if_ether.h-for-ETH_AL.patch deleted file mode 100644 index 39ba7160..00000000 --- a/6.11/target/linux/generic/pending-6.11/780-ARM-kirkwood-add-missing-linux-if_ether.h-for-ETH_AL.patch +++ /dev/null @@ -1,61 +0,0 @@ -From patchwork Thu Aug 5 22:23:30 2021 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -X-Patchwork-Submitter: Daniel Golle -X-Patchwork-Id: 12422209 -Date: Thu, 5 Aug 2021 23:23:30 +0100 -From: Daniel Golle -To: linux-arm-kernel@lists.infradead.org, netdev@vger.kernel.org, - linux-kernel@vger.kernel.org -Cc: "David S. Miller" , Andrew Lunn , - Michael Walle -Subject: [PATCH] ARM: kirkwood: add missing for ETH_ALEN -Message-ID: -MIME-Version: 1.0 -Content-Disposition: inline -X-BeenThere: linux-arm-kernel@lists.infradead.org -X-Mailman-Version: 2.1.34 -Precedence: list -List-Id: -List-Archive: -Sender: "linux-arm-kernel" - -After commit 83216e3988cd1 ("of: net: pass the dst buffer to -of_get_mac_address()") build fails for kirkwood as ETH_ALEN is not -defined. - -arch/arm/mach-mvebu/kirkwood.c: In function 'kirkwood_dt_eth_fixup': -arch/arm/mach-mvebu/kirkwood.c:87:13: error: 'ETH_ALEN' undeclared (first use in this function); did you mean 'ESTALE'? - u8 tmpmac[ETH_ALEN]; - ^~~~~~~~ - ESTALE -arch/arm/mach-mvebu/kirkwood.c:87:13: note: each undeclared identifier is reported only once for each function it appears in -arch/arm/mach-mvebu/kirkwood.c:87:6: warning: unused variable 'tmpmac' [-Wunused-variable] - u8 tmpmac[ETH_ALEN]; - ^~~~~~ -make[5]: *** [scripts/Makefile.build:262: arch/arm/mach-mvebu/kirkwood.o] Error 1 -make[5]: *** Waiting for unfinished jobs.... - -Add missing #include to fix this. - -Cc: David S. Miller -Cc: Andrew Lunn -Cc: Michael Walle -Reported-by: https://buildbot.openwrt.org/master/images/#/builders/56/builds/220/steps/44/logs/stdio -Fixes: 83216e3988cd1 ("of: net: pass the dst buffer to of_get_mac_address()") -Signed-off-by: Daniel Golle ---- - arch/arm/mach-mvebu/kirkwood.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/arch/arm/mach-mvebu/kirkwood.c -+++ b/arch/arm/mach-mvebu/kirkwood.c -@@ -11,6 +11,7 @@ - #include - #include - #include -+#include - #include - #include - #include diff --git a/6.11/target/linux/generic/pending-6.11/790-bus-mhi-core-add-SBL-state-callback.patch b/6.11/target/linux/generic/pending-6.11/790-bus-mhi-core-add-SBL-state-callback.patch deleted file mode 100644 index fe0f260a..00000000 --- a/6.11/target/linux/generic/pending-6.11/790-bus-mhi-core-add-SBL-state-callback.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 5f7c5e1c0d7a79be144e5efc1f24728ddd7fc25c Mon Sep 17 00:00:00 2001 -From: Robert Marko -Date: Sat, 5 Nov 2022 20:02:56 +0100 -Subject: [PATCH 1/2] bus: mhi: core: add SBL state callback - -Add support for SBL state callback in MHI core. - -It is required for ath11k MHI devices in order to be able to set QRTR -instance ID in the SBL state so that QRTR instance ID-s dont conflict in -case of multiple PCI/MHI cards or AHB + PCI/MHI card. -Setting QRTR instance ID is only possible in SBL state and there is -currently no way to ensure that we are in that state, so provide a -callback that the controller can trigger off. - -Signed-off-by: Robert Marko ---- - drivers/bus/mhi/host/main.c | 1 + - include/linux/mhi.h | 2 ++ - 2 files changed, 3 insertions(+) - ---- a/drivers/bus/mhi/host/main.c -+++ b/drivers/bus/mhi/host/main.c -@@ -906,6 +906,7 @@ int mhi_process_ctrl_ev_ring(struct mhi_ - switch (event) { - case MHI_EE_SBL: - st = DEV_ST_TRANSITION_SBL; -+ mhi_cntrl->status_cb(mhi_cntrl, MHI_CB_EE_SBL_MODE); - break; - case MHI_EE_WFW: - case MHI_EE_AMSS: ---- a/include/linux/mhi.h -+++ b/include/linux/mhi.h -@@ -34,6 +34,7 @@ struct mhi_buf_info; - * @MHI_CB_SYS_ERROR: MHI device entered error state (may recover) - * @MHI_CB_FATAL_ERROR: MHI device entered fatal error state - * @MHI_CB_BW_REQ: Received a bandwidth switch request from device -+ * @MHI_CB_EE_SBL_MODE: MHI device entered SBL mode - */ - enum mhi_callback { - MHI_CB_IDLE, -@@ -45,6 +46,7 @@ enum mhi_callback { - MHI_CB_SYS_ERROR, - MHI_CB_FATAL_ERROR, - MHI_CB_BW_REQ, -+ MHI_CB_EE_SBL_MODE, - }; - - /** diff --git a/6.11/target/linux/generic/pending-6.11/800-bcma-get-SoC-device-struct-copy-its-DMA-params-to-th.patch b/6.11/target/linux/generic/pending-6.11/800-bcma-get-SoC-device-struct-copy-its-DMA-params-to-th.patch deleted file mode 100644 index 4a9c188d..00000000 --- a/6.11/target/linux/generic/pending-6.11/800-bcma-get-SoC-device-struct-copy-its-DMA-params-to-th.patch +++ /dev/null @@ -1,73 +0,0 @@ -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Subject: [PATCH] bcma: get SoC device struct & copy its DMA params to the - subdevices -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -For bus devices to be fully usable it's required to set their DMA -parameters. - -For years it has been missing and remained unnoticed because of -mips_dma_alloc_coherent() silently handling the empty coherent_dma_mask. -Kernel 4.19 came with a lot of DMA changes and caused a regression on -the bcm47xx. Starting with the commit f8c55dc6e828 ("MIPS: use generic -dma noncoherent ops for simple noncoherent platforms") DMA coherent -allocations just fail. Example: -[ 1.114914] bgmac_bcma bcma0:2: Allocation of TX ring 0x200 failed -[ 1.121215] bgmac_bcma bcma0:2: Unable to alloc memory for DMA -[ 1.127626] bgmac_bcma: probe of bcma0:2 failed with error -12 -[ 1.133838] bgmac_bcma: Broadcom 47xx GBit MAC driver loaded - -This change fixes above regression in addition to the MIPS bcm47xx -commit 321c46b91550 ("MIPS: BCM47XX: Setup struct device for the SoC"). - -It also fixes another *old* GPIO regression caused by a parent pointing -to the NULL: -[ 0.157054] missing gpiochip .dev parent pointer -[ 0.157287] bcma: bus0: Error registering GPIO driver: -22 -introduced by the commit 74f4e0cc6108 ("bcma: switch GPIO portions to -use GPIOLIB_IRQCHIP"). - -Fixes: f8c55dc6e828 ("MIPS: use generic dma noncoherent ops for simple noncoherent platforms") -Fixes: 74f4e0cc6108 ("bcma: switch GPIO portions to use GPIOLIB_IRQCHIP") -Cc: linux-mips@linux-mips.org -Cc: Christoph Hellwig -Cc: Linus Walleij -Signed-off-by: Rafał Miłecki ---- - ---- a/drivers/bcma/host_soc.c -+++ b/drivers/bcma/host_soc.c -@@ -191,6 +191,8 @@ int __init bcma_host_soc_init(struct bcm - struct bcma_bus *bus = &soc->bus; - int err; - -+ bus->dev = soc->dev; -+ - /* Scan bus and initialize it */ - err = bcma_bus_early_register(bus); - if (err) ---- a/drivers/bcma/main.c -+++ b/drivers/bcma/main.c -@@ -237,13 +237,17 @@ EXPORT_SYMBOL(bcma_core_irq); - - void bcma_prepare_core(struct bcma_bus *bus, struct bcma_device *core) - { -- device_initialize(&core->dev); -+ struct device *dev = &core->dev; -+ -+ device_initialize(dev); - core->dev.release = bcma_release_core_dev; - core->dev.bus = &bcma_bus_type; -- dev_set_name(&core->dev, "bcma%d:%d", bus->num, core->core_index); -+ dev_set_name(dev, "bcma%d:%d", bus->num, core->core_index); - core->dev.parent = bus->dev; -- if (bus->dev) -+ if (bus->dev) { - bcma_of_fill_device(bus->dev, core); -+ dma_coerce_mask_and_coherent(dev, bus->dev->coherent_dma_mask); -+ } - - switch (bus->hosttype) { - case BCMA_HOSTTYPE_PCI: diff --git a/6.11/target/linux/generic/pending-6.11/801-gpio-gpio-cascade-add-generic-GPIO-cascade.patch b/6.11/target/linux/generic/pending-6.11/801-gpio-gpio-cascade-add-generic-GPIO-cascade.patch deleted file mode 100644 index aae850e1..00000000 --- a/6.11/target/linux/generic/pending-6.11/801-gpio-gpio-cascade-add-generic-GPIO-cascade.patch +++ /dev/null @@ -1,222 +0,0 @@ -From fc23ea48ba52c24f201fe5ca0132ee1a3de5a70a Mon Sep 17 00:00:00 2001 -From: Mauri Sandberg -Date: Thu, 25 Mar 2021 11:48:05 +0200 -Subject: [PATCH 2/2] gpio: gpio-cascade: add generic GPIO cascade - -Adds support for building cascades of GPIO lines. That is, it allows -setups when there is one upstream line and multiple cascaded lines, out -of which one can be chosen at a time. The status of the upstream line -can be conveyed to the selected cascaded line or, vice versa, the status -of the cascaded line can be conveyed to the upstream line. - -A multiplexer is being used to select, which cascaded GPIO line is being -used at any given time. - -At the moment only input direction is supported. In future it should be -possible to add support for output direction, too. - -Signed-off-by: Mauri Sandberg -Reviewed-by: Linus Walleij -Reviewed-by: Andy Shevchenko ---- -v7 -> v8: - - rearrange members in struct gpio_cascade - - cosmetic changes in file header and in one function declaration - - added Reviewed-by tags by Linus and Andy -v6 -> v7: - - In Kconfig add info about module name - - adhere to new convention that allows lines longer than 80 chars - - use dev_probe_err with upstream gpio line too - - refactor for cleaner exit of probe function. -v5 -> v6: - - In Kconfig, remove dependency to OF_GPIO and select only MULTIPLEXER - - refactor code preferring one-liners - - clean up prints, removing them from success-path. - - don't explicitly set gpio_chip.of_node as it's done in the GPIO library - - use devm_gpiochip_add_data instead of gpiochip_add -v4 -> v5: - - renamed gpio-mux-input -> gpio-cascade. refactored code accordingly - here and there and changed to use new bindings and compatible string - - ambigious and vague 'pin' was rename to 'upstream_line' - - dropped Tested-by and Reviewed-by due to changes in bindings - - dropped Reported-by suggested by an automatic bot as it was not really - appropriate to begin with - - functionally it's the same as v4 -v3 -> v4: - - Changed author email - - Included Tested-by and Reviewed-by from Drew -v2 -> v3: - - use managed device resources - - update Kconfig description -v1 -> v2: - - removed .owner from platform_driver as per test bot's instruction - - added MODULE_AUTHOR, MODULE_DESCRIPTION, MODULE_LICENSE - - added gpio_mux_input_get_direction as it's recommended for all chips - - removed because this is input only chip: gpio_mux_input_set_value - - removed because they are not needed for input/output only chips: - gpio_mux_input_direction_input - gpio_mux_input_direction_output - - fixed typo in an error message - - added info message about successful registration - - removed can_sleep flag as this does not sleep while getting GPIO value - like I2C or SPI do - - Updated description in Kconfig ---- - drivers/gpio/Kconfig | 15 +++++ - drivers/gpio/Makefile | 1 + - drivers/gpio/gpio-cascade.c | 117 ++++++++++++++++++++++++++++++++++++ - 3 files changed, 133 insertions(+) - create mode 100644 drivers/gpio/gpio-cascade.c - ---- a/drivers/gpio/Kconfig -+++ b/drivers/gpio/Kconfig -@@ -1820,4 +1820,19 @@ config GPIO_SIM - - endmenu - -+comment "Other GPIO expanders" -+ -+config GPIO_CASCADE -+ tristate "General GPIO cascade" -+ select MULTIPLEXER -+ help -+ Say yes here to enable support for generic GPIO cascade. -+ -+ This allows building one-to-many cascades of GPIO lines using -+ different types of multiplexers readily available. At the -+ moment only input lines are supported. -+ -+ To build the driver as a module choose 'm' and the resulting module -+ will be called 'gpio-cascade'. -+ - endif ---- a/drivers/gpio/Makefile -+++ b/drivers/gpio/Makefile -@@ -44,6 +44,7 @@ obj-$(CONFIG_GPIO_BD9571MWV) += gpio-bd - obj-$(CONFIG_GPIO_BRCMSTB) += gpio-brcmstb.o - obj-$(CONFIG_GPIO_BT8XX) += gpio-bt8xx.o - obj-$(CONFIG_GPIO_CADENCE) += gpio-cadence.o -+obj-$(CONFIG_GPIO_CASCADE) += gpio-cascade.o - obj-$(CONFIG_GPIO_CLPS711X) += gpio-clps711x.o - obj-$(CONFIG_GPIO_SNPS_CREG) += gpio-creg-snps.o - obj-$(CONFIG_GPIO_CRYSTAL_COVE) += gpio-crystalcove.o ---- /dev/null -+++ b/drivers/gpio/gpio-cascade.c -@@ -0,0 +1,117 @@ -+// SPDX-License-Identifier: GPL-2.0-only -+/* -+ * A generic GPIO cascade driver -+ * -+ * Copyright (C) 2021 Mauri Sandberg -+ * -+ * This allows building cascades of GPIO lines in a manner illustrated -+ * below: -+ * -+ * /|---- Cascaded GPIO line 0 -+ * Upstream | |---- Cascaded GPIO line 1 -+ * GPIO line ----+ | . -+ * | | . -+ * \|---- Cascaded GPIO line n -+ * -+ * A multiplexer is being used to select, which cascaded line is being -+ * addressed at any given time. -+ * -+ * At the moment only input mode is supported due to lack of means for -+ * testing output functionality. At least theoretically output should be -+ * possible with open drain constructions. -+ */ -+ -+#include -+#include -+#include -+#include -+ -+#include -+#include -+ -+struct gpio_cascade { -+ struct gpio_chip gpio_chip; -+ struct device *parent; -+ struct mux_control *mux_control; -+ struct gpio_desc *upstream_line; -+}; -+ -+static struct gpio_cascade *chip_to_cascade(struct gpio_chip *gc) -+{ -+ return container_of(gc, struct gpio_cascade, gpio_chip); -+} -+ -+static int gpio_cascade_get_direction(struct gpio_chip *gc, unsigned int offset) -+{ -+ return GPIO_LINE_DIRECTION_IN; -+} -+ -+static int gpio_cascade_get_value(struct gpio_chip *gc, unsigned int offset) -+{ -+ struct gpio_cascade *cas = chip_to_cascade(gc); -+ int ret; -+ -+ ret = mux_control_select(cas->mux_control, offset); -+ if (ret) -+ return ret; -+ -+ ret = gpiod_get_value(cas->upstream_line); -+ mux_control_deselect(cas->mux_control); -+ return ret; -+} -+ -+static int gpio_cascade_probe(struct platform_device *pdev) -+{ -+ struct device *dev = &pdev->dev; -+ struct gpio_cascade *cas; -+ struct mux_control *mc; -+ struct gpio_desc *upstream; -+ struct gpio_chip *gc; -+ -+ cas = devm_kzalloc(dev, sizeof(*cas), GFP_KERNEL); -+ if (!cas) -+ return -ENOMEM; -+ -+ mc = devm_mux_control_get(dev, NULL); -+ if (IS_ERR(mc)) -+ return dev_err_probe(dev, PTR_ERR(mc), "unable to get mux-control\n"); -+ -+ cas->mux_control = mc; -+ upstream = devm_gpiod_get(dev, "upstream", GPIOD_IN); -+ if (IS_ERR(upstream)) -+ return dev_err_probe(dev, PTR_ERR(upstream), "unable to claim upstream GPIO line\n"); -+ -+ cas->upstream_line = upstream; -+ cas->parent = dev; -+ -+ gc = &cas->gpio_chip; -+ gc->get = gpio_cascade_get_value; -+ gc->get_direction = gpio_cascade_get_direction; -+ gc->base = -1; -+ gc->ngpio = mux_control_states(mc); -+ gc->label = dev_name(cas->parent); -+ gc->parent = cas->parent; -+ gc->owner = THIS_MODULE; -+ -+ platform_set_drvdata(pdev, cas); -+ return devm_gpiochip_add_data(dev, &cas->gpio_chip, NULL); -+} -+ -+static const struct of_device_id gpio_cascade_id[] = { -+ { .compatible = "gpio-cascade" }, -+ { /* sentinel */ } -+}; -+MODULE_DEVICE_TABLE(of, gpio_cascade_id); -+ -+static struct platform_driver gpio_cascade_driver = { -+ .driver = { -+ .name = "gpio-cascade", -+ .of_match_table = gpio_cascade_id, -+ }, -+ .probe = gpio_cascade_probe, -+}; -+module_platform_driver(gpio_cascade_driver); -+ -+MODULE_AUTHOR("Mauri Sandberg "); -+MODULE_DESCRIPTION("Generic GPIO cascade"); -+MODULE_LICENSE("GPL"); diff --git a/6.11/target/linux/generic/pending-6.11/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch b/6.11/target/linux/generic/pending-6.11/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch deleted file mode 100644 index 7f670914..00000000 --- a/6.11/target/linux/generic/pending-6.11/802-OPP-Provide-old-opp-to-config_clks-on-_set_opp.patch +++ /dev/null @@ -1,108 +0,0 @@ -From fd59b838dd90452f61a17dc9e5ff175205003068 Mon Sep 17 00:00:00 2001 -From: Christian Marangi -Date: Thu, 15 Sep 2022 18:49:43 +0200 -Subject: [PATCH] OPP: Provide old opp to config_clks on _set_opp - -With the target opp, also pass the old opp to config_clks function. -This can be useful when a driver needs to take decision on what fequency -to set based on what is the current frequency without using a -clk_get_freq call. -Update the only user of custom config_clks (tegra30 devfreq driver) to -this new implementation. - -Signed-off-by: Christian Marangi ---- - drivers/devfreq/tegra30-devfreq.c | 5 +++-- - drivers/opp/core.c | 11 ++++++----- - include/linux/pm_opp.h | 11 ++++++----- - 3 files changed, 15 insertions(+), 12 deletions(-) - ---- a/drivers/devfreq/tegra30-devfreq.c -+++ b/drivers/devfreq/tegra30-devfreq.c -@@ -823,8 +823,9 @@ static int devm_tegra_devfreq_init_hw(st - - static int tegra_devfreq_config_clks_nop(struct device *dev, - struct opp_table *opp_table, -- struct dev_pm_opp *opp, void *data, -- bool scaling_down) -+ struct dev_pm_opp *old_opp, -+ struct dev_pm_opp *opp, -+ void *data, bool scaling_down) - { - /* We want to skip clk configuration via dev_pm_opp_set_opp() */ - return 0; ---- a/drivers/opp/core.c -+++ b/drivers/opp/core.c -@@ -902,7 +902,8 @@ static int _set_opp_voltage(struct devic - - static int - _opp_config_clk_single(struct device *dev, struct opp_table *opp_table, -- struct dev_pm_opp *opp, void *data, bool scaling_down) -+ struct dev_pm_opp *old_opp, struct dev_pm_opp *opp, -+ void *data, bool scaling_down) - { - unsigned long *target = data; - unsigned long freq; -@@ -934,8 +935,8 @@ _opp_config_clk_single(struct device *de - * the order in which they are present in the array while scaling up. - */ - int dev_pm_opp_config_clks_simple(struct device *dev, -- struct opp_table *opp_table, struct dev_pm_opp *opp, void *data, -- bool scaling_down) -+ struct opp_table *opp_table, struct dev_pm_opp *old_opp, -+ struct dev_pm_opp *opp, void *data, bool scaling_down) - { - int ret, i; - -@@ -1217,7 +1218,7 @@ static int _set_opp(struct device *dev, - } - - if (opp_table->config_clks) { -- ret = opp_table->config_clks(dev, opp_table, opp, clk_data, scaling_down); -+ ret = opp_table->config_clks(dev, opp_table, old_opp, opp, clk_data, scaling_down); - if (ret) - return ret; - } -@@ -1292,7 +1293,7 @@ int dev_pm_opp_set_rate(struct device *d - * equivalent to a clk_set_rate() - */ - if (!_get_opp_count(opp_table)) { -- ret = opp_table->config_clks(dev, opp_table, NULL, -+ ret = opp_table->config_clks(dev, opp_table, NULL, NULL, - &target_freq, false); - goto put_opp_table; - } ---- a/include/linux/pm_opp.h -+++ b/include/linux/pm_opp.h -@@ -61,7 +61,8 @@ typedef int (*config_regulators_t)(struc - struct dev_pm_opp *old_opp, struct dev_pm_opp *new_opp, - struct regulator **regulators, unsigned int count); - --typedef int (*config_clks_t)(struct device *dev, struct opp_table *opp_table, -+typedef int (*config_clks_t)(struct device *dev, -+ struct opp_table *opp_table, struct dev_pm_opp *old_opp, - struct dev_pm_opp *opp, void *data, bool scaling_down); - - /** -@@ -172,8 +173,8 @@ int dev_pm_opp_set_config(struct device - int devm_pm_opp_set_config(struct device *dev, struct dev_pm_opp_config *config); - void dev_pm_opp_clear_config(int token); - int dev_pm_opp_config_clks_simple(struct device *dev, -- struct opp_table *opp_table, struct dev_pm_opp *opp, void *data, -- bool scaling_down); -+ struct opp_table *opp_table, struct dev_pm_opp *old_opp, -+ struct dev_pm_opp *opp, void *data, bool scaling_down); - - struct dev_pm_opp *dev_pm_opp_xlate_required_opp(struct opp_table *src_table, struct opp_table *dst_table, struct dev_pm_opp *src_opp); - int dev_pm_opp_xlate_performance_state(struct opp_table *src_table, struct opp_table *dst_table, unsigned int pstate); -@@ -377,8 +378,8 @@ static inline int devm_pm_opp_set_config - static inline void dev_pm_opp_clear_config(int token) {} - - static inline int dev_pm_opp_config_clks_simple(struct device *dev, -- struct opp_table *opp_table, struct dev_pm_opp *opp, void *data, -- bool scaling_down) -+ struct opp_table *opp_table, struct dev_pm_opp *old_opp, -+ struct dev_pm_opp *opp, void *data, bool scaling_down) - { - return -EOPNOTSUPP; - } diff --git a/6.11/target/linux/generic/pending-6.11/802-nvmem-u-boot-env-align-endianness-of-crc32-values.patch b/6.11/target/linux/generic/pending-6.11/802-nvmem-u-boot-env-align-endianness-of-crc32-values.patch deleted file mode 100644 index d07447bc..00000000 --- a/6.11/target/linux/generic/pending-6.11/802-nvmem-u-boot-env-align-endianness-of-crc32-values.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 0e71cac033bb7689c4dfa2e6814191337ef770f5 Mon Sep 17 00:00:00 2001 -From: INAGAKI Hiroshi -Date: Thu, 13 Oct 2022 00:51:33 +0900 -Subject: [PATCH] nvmem: u-boot-env: align endianness of crc32 values -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This patch fixes crc32 error on Big-Endianness system by conversion of -calculated crc32 value. - -Little-Endianness system: - - obtained crc32: Little -calculated crc32: Little - -Big-Endianness system: - - obtained crc32: Little -calculated crc32: Big - -log (APRESIA ApresiaLightGS120GT-SS, RTL8382M, Big-Endianness): - -[ 8.570000] u_boot_env 18001200.spi:flash@0:partitions:partition@c0000: Invalid calculated CRC32: 0x88cd6f09 (expected: 0x096fcd88) -[ 8.580000] u_boot_env: probe of 18001200.spi:flash@0:partitions:partition@c0000 failed with error -22 - -Fixes: f955dc1445069 ("nvmem: add driver handling U-Boot environment variables") - -Signed-off-by: INAGAKI Hiroshi -Acked-by: Rafał Miłecki -Tested-by: Christian Lamparter -Signed-off-by: Srinivas Kandagatla ---- - drivers/nvmem/u-boot-env.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/nvmem/u-boot-env.c -+++ b/drivers/nvmem/u-boot-env.c -@@ -181,7 +181,7 @@ static int u_boot_env_parse(struct u_boo - crc32_data_len = dev_size - crc32_data_offset; - data_len = dev_size - data_offset; - -- calc = crc32(~0, buf + crc32_data_offset, crc32_data_len) ^ ~0L; -+ calc = le32_to_cpu((__le32)crc32(~0, buf + crc32_data_offset, crc32_data_len) ^ ~0L); - if (calc != crc32) { - dev_err(dev, "Invalid calculated CRC32: 0x%08x (expected: 0x%08x)\n", calc, crc32); - err = -EINVAL; diff --git a/6.11/target/linux/generic/pending-6.11/804-nvmem-core-support-mac-base-fixed-layout-cells.patch b/6.11/target/linux/generic/pending-6.11/804-nvmem-core-support-mac-base-fixed-layout-cells.patch deleted file mode 100644 index d08ed63e..00000000 --- a/6.11/target/linux/generic/pending-6.11/804-nvmem-core-support-mac-base-fixed-layout-cells.patch +++ /dev/null @@ -1,124 +0,0 @@ -From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= -Date: Thu, 13 Jul 2023 18:29:19 +0200 -Subject: [PATCH] nvmem: core: support "mac-base" fixed layout cells - -Fixed layout binding allows specifying "mac-base" NVMEM cells. It's used -for base MAC address (that can be used for calculating relative -addresses). It can be stored in a raw binary format or as an ASCII -string. ---- - ---- a/drivers/nvmem/Kconfig -+++ b/drivers/nvmem/Kconfig -@@ -2,6 +2,7 @@ - menuconfig NVMEM - bool "NVMEM Support" - imply NVMEM_LAYOUTS -+ select GENERIC_NET_UTILS - help - Support for NVMEM(Non Volatile Memory) devices like EEPROM, EFUSES... - ---- a/drivers/nvmem/core.c -+++ b/drivers/nvmem/core.c -@@ -7,9 +7,12 @@ - */ - - #include -+#include -+#include - #include - #include - #include -+#include - #include - #include - #include -@@ -779,6 +782,62 @@ static int nvmem_validate_keepouts(struc - return 0; - } - -+static int nvmem_mac_base_raw_read(void *context, const char *id, int index, unsigned int offset, -+ void *buf, size_t bytes) -+{ -+ if (WARN_ON(bytes != ETH_ALEN)) -+ return -EINVAL; -+ -+ if (index) -+ eth_addr_add(buf, index); -+ -+ return 0; -+} -+ -+static int nvmem_mac_base_ascii_read(void *context, const char *id, int index, unsigned int offset, -+ void *buf, size_t bytes) -+{ -+ u8 mac[ETH_ALEN]; -+ -+ if (WARN_ON(bytes != 3 * ETH_ALEN - 1)) -+ return -EINVAL; -+ -+ if (!mac_pton(buf, mac)) -+ return -EINVAL; -+ -+ if (index) -+ eth_addr_add(mac, index); -+ -+ ether_addr_copy(buf, mac); -+ -+ return 0; -+} -+ -+static int nvmem_mac_base_hex_read(void *context, const char *id, int index, unsigned int offset, -+ void *buf, size_t bytes) -+{ -+ u8 mac[ETH_ALEN], *hexstr; -+ int i; -+ -+ if (WARN_ON(bytes != 2 * ETH_ALEN)) -+ return -EINVAL; -+ -+ hexstr = (u8 *)buf; -+ for (i = 0; i < ETH_ALEN; i++) { -+ if (!isxdigit(hexstr[i * 2]) || !isxdigit(hexstr[i * 2 + 1])) -+ return -EINVAL; -+ -+ mac[i] = (hex_to_bin(hexstr[i * 2]) << 4) | hex_to_bin(hexstr[i * 2 + 1]); -+ } -+ -+ if (index) -+ eth_addr_add(mac, index); -+ -+ ether_addr_copy(buf, mac); -+ -+ return 0; -+} -+ - static int nvmem_add_cells_from_dt(struct nvmem_device *nvmem, struct device_node *np) - { - struct device *dev = &nvmem->dev; -@@ -813,6 +872,25 @@ static int nvmem_add_cells_from_dt(struc - if (nvmem->fixup_dt_cell_info) - nvmem->fixup_dt_cell_info(nvmem, &info); - -+ if (of_device_is_compatible(np, "fixed-layout")) { -+ if (of_device_is_compatible(child, "mac-base")) { -+ if (info.bytes == ETH_ALEN) { -+ info.raw_len = info.bytes; -+ info.bytes = ETH_ALEN; -+ info.read_post_process = nvmem_mac_base_raw_read; -+ } else if (info.bytes == 2 * ETH_ALEN) { -+ info.raw_len = info.bytes; -+ info.bytes = ETH_ALEN; -+ info.read_post_process = nvmem_mac_base_hex_read; -+ } else if (info.bytes == 3 * ETH_ALEN - 1) { -+ info.raw_len = info.bytes; -+ info.bytes = ETH_ALEN; -+ info.read_post_process = nvmem_mac_base_ascii_read; -+ } -+ -+ } -+ } -+ - ret = nvmem_add_one_cell(nvmem, &info); - kfree(info.name); - if (ret) { diff --git a/6.11/target/linux/generic/pending-6.11/810-pci_disable_common_quirks.patch b/6.11/target/linux/generic/pending-6.11/810-pci_disable_common_quirks.patch deleted file mode 100644 index 9bdfcc74..00000000 --- a/6.11/target/linux/generic/pending-6.11/810-pci_disable_common_quirks.patch +++ /dev/null @@ -1,62 +0,0 @@ -From: Gabor Juhos -Subject: debloat: add kernel config option to disabling common PCI quirks - -Signed-off-by: Gabor Juhos ---- - drivers/pci/Kconfig | 6 ++++++ - drivers/pci/quirks.c | 6 ++++++ - 2 files changed, 12 insertions(+) - ---- a/drivers/pci/Kconfig -+++ b/drivers/pci/Kconfig -@@ -113,6 +113,13 @@ config XEN_PCIDEV_FRONTEND - The PCI device frontend driver allows the kernel to import arbitrary - PCI devices from a PCI backend to support PCI driver domains. - -+config PCI_DISABLE_COMMON_QUIRKS -+ bool "PCI disable common quirks" -+ depends on PCI -+ help -+ If you don't know what to do here, say N. -+ -+ - config PCI_ATS - bool - ---- a/drivers/pci/quirks.c -+++ b/drivers/pci/quirks.c -@@ -300,6 +300,7 @@ static void quirk_mmio_always_on(struct - DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID, - PCI_CLASS_BRIDGE_HOST, 8, quirk_mmio_always_on); - -+#ifndef CONFIG_PCI_DISABLE_COMMON_QUIRKS - /* - * The Mellanox Tavor device gives false positive parity errors. Disable - * parity error reporting. -@@ -3488,6 +3489,8 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_I - DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata); - DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata); - -+#endif /* !CONFIG_PCI_DISABLE_COMMON_QUIRKS */ -+ - /* - * Ivytown NTB BAR sizes are misreported by the hardware due to an erratum. - * To work around this, query the size it should be configured to by the -@@ -3513,6 +3516,8 @@ static void quirk_intel_ntb(struct pci_d - DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e08, quirk_intel_ntb); - DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x0e0d, quirk_intel_ntb); - -+#ifndef CONFIG_PCI_DISABLE_COMMON_QUIRKS -+ - /* - * Some BIOS implementations leave the Intel GPU interrupts enabled, even - * though no one is handling them (e.g., if the i915 driver is never -@@ -3551,6 +3556,8 @@ DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_IN - DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq); - DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0152, disable_igfx_irq); - -+#endif /* !CONFIG_PCI_DISABLE_COMMON_QUIRKS */ -+ - /* - * PCI devices which are on Intel chips can skip the 10ms delay - * before entering D3 mode. diff --git a/6.11/target/linux/generic/pending-6.11/840-hwrng-bcm2835-set-quality-to-1000.patch b/6.11/target/linux/generic/pending-6.11/840-hwrng-bcm2835-set-quality-to-1000.patch deleted file mode 100644 index 3172ad5a..00000000 --- a/6.11/target/linux/generic/pending-6.11/840-hwrng-bcm2835-set-quality-to-1000.patch +++ /dev/null @@ -1,26 +0,0 @@ -From d6988cf1d16faac56899918bb2b1be8d85155e3f Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= -Date: Sat, 20 Feb 2021 18:36:38 +0100 -Subject: [PATCH] hwrng: bcm2835: set quality to 1000 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -This allows devices without a high precission timer to reduce boot from >100s -to <30s. - -Signed-off-by: Álvaro Fernández Rojas ---- - drivers/char/hw_random/bcm2835-rng.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/drivers/char/hw_random/bcm2835-rng.c -+++ b/drivers/char/hw_random/bcm2835-rng.c -@@ -169,6 +169,7 @@ static int bcm2835_rng_probe(struct plat - priv->rng.init = bcm2835_rng_init; - priv->rng.read = bcm2835_rng_read; - priv->rng.cleanup = bcm2835_rng_cleanup; -+ priv->rng.quality = 1000; - - if (dev_of_node(dev)) { - rng_id = of_match_node(bcm2835_rng_of_match, dev->of_node); diff --git a/6.11/target/linux/generic/pending-6.11/850-0023-PCI-aardvark-Make-main-irq_chip-structure-a-static-d.patch b/6.11/target/linux/generic/pending-6.11/850-0023-PCI-aardvark-Make-main-irq_chip-structure-a-static-d.patch deleted file mode 100644 index fc61ee20..00000000 --- a/6.11/target/linux/generic/pending-6.11/850-0023-PCI-aardvark-Make-main-irq_chip-structure-a-static-d.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 663b9f99bb35dbc0c7b685f71ee3668a60d31320 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Marek=20Beh=C3=BAn?= -Date: Mon, 10 Jan 2022 02:02:00 +0100 -Subject: [PATCH] PCI: aardvark: Make main irq_chip structure a static driver - structure -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Marc Zyngier says [1] that we should use struct irq_chip as a global -static struct in the driver. Even though the structure currently -contains a dynamic member (parent_device), Marc says [2] that he plans -to kill it and make the structure completely static. - -We have already converted others irq_chip structures in this driver in -this way, but we omitted this one because the .name member is -dynamically created from device's name, and the name is displayed in -sysfs, so changing it would break sysfs ABI. - -The rationale for changing the name (to "advk-INT") in spite of sysfs -ABI, and thus allowing to convert to a static structure, is that after -the other changes we made in this series, the IRQ chip is basically -something different: it no logner generates ERR and PME interrupts (they -are generated by emulated bridge's rp_irq_chip). - -[1] https://lore.kernel.org/linux-pci/877dbcvngf.wl-maz@kernel.org/ -[2] https://lore.kernel.org/linux-pci/874k6gvkhz.wl-maz@kernel.org/ - -Signed-off-by: Marek Behún ---- - drivers/pci/controller/pci-aardvark.c | 25 +++++++------------------ - 1 file changed, 7 insertions(+), 18 deletions(-) - ---- a/drivers/pci/controller/pci-aardvark.c -+++ b/drivers/pci/controller/pci-aardvark.c -@@ -277,7 +277,6 @@ struct advk_pcie { - u8 wins_count; - struct irq_domain *rp_irq_domain; - struct irq_domain *irq_domain; -- struct irq_chip irq_chip; - raw_spinlock_t irq_lock; - struct irq_domain *msi_domain; - struct irq_domain *msi_inner_domain; -@@ -1426,14 +1425,19 @@ static void advk_pcie_irq_unmask(struct - raw_spin_unlock_irqrestore(&pcie->irq_lock, flags); - } - -+static struct irq_chip advk_irq_chip = { -+ .name = "advk-INT", -+ .irq_mask = advk_pcie_irq_mask, -+ .irq_unmask = advk_pcie_irq_unmask, -+}; -+ - static int advk_pcie_irq_map(struct irq_domain *h, - unsigned int virq, irq_hw_number_t hwirq) - { - struct advk_pcie *pcie = h->host_data; - - irq_set_status_flags(virq, IRQ_LEVEL); -- irq_set_chip_and_handler(virq, &pcie->irq_chip, -- handle_level_irq); -+ irq_set_chip_and_handler(virq, &advk_irq_chip, handle_level_irq); - irq_set_chip_data(virq, pcie); - - return 0; -@@ -1492,7 +1496,6 @@ static int advk_pcie_init_irq_domain(str - struct device *dev = &pcie->pdev->dev; - struct device_node *node = dev->of_node; - struct device_node *pcie_intc_node; -- struct irq_chip *irq_chip; - int ret = 0; - - raw_spin_lock_init(&pcie->irq_lock); -@@ -1503,28 +1506,14 @@ static int advk_pcie_init_irq_domain(str - return -ENODEV; - } - -- irq_chip = &pcie->irq_chip; -- -- irq_chip->name = devm_kasprintf(dev, GFP_KERNEL, "%s-irq", -- dev_name(dev)); -- if (!irq_chip->name) { -- ret = -ENOMEM; -- goto out_put_node; -- } -- -- irq_chip->irq_mask = advk_pcie_irq_mask; -- irq_chip->irq_unmask = advk_pcie_irq_unmask; -- - pcie->irq_domain = - irq_domain_add_linear(pcie_intc_node, PCI_NUM_INTX, - &advk_pcie_irq_domain_ops, pcie); - if (!pcie->irq_domain) { - dev_err(dev, "Failed to get a INTx IRQ domain\n"); - ret = -ENOMEM; -- goto out_put_node; - } - --out_put_node: - of_node_put(pcie_intc_node); - return ret; - } diff --git a/6.11/target/linux/generic/pending-6.11/870-ARM-dts-nxp-imx7d-pico-add-cpu-supply-nodes.patch b/6.11/target/linux/generic/pending-6.11/870-ARM-dts-nxp-imx7d-pico-add-cpu-supply-nodes.patch deleted file mode 100644 index 1f860e9c..00000000 --- a/6.11/target/linux/generic/pending-6.11/870-ARM-dts-nxp-imx7d-pico-add-cpu-supply-nodes.patch +++ /dev/null @@ -1,43 +0,0 @@ -From d0562705bcd4cb9849156f095b2af0ec1bb53b56 Mon Sep 17 00:00:00 2001 -From: Lech Perczak -Date: Fri, 17 Nov 2023 21:33:04 +0100 -Subject: [PATCH] ARM: dts: nxp: imx7d-pico: add cpu-supply nodes - -The PICO-IMX7D SoM has the usual power supply configuration using -output sw1a of PF3000 PMIC, which was defined in downstream derivative -of linux-imx (see link) in the sources for "Android Things" devkit. -It is required to support CPU frequency scaling. - -Map the respective "cpu-supply" nodes of each core to sw1a of the PMIC. - -Enabling them causes cpufreq-dt, and imx-thermal drivers to probe -successfully, and CPU frequency scaling to function. - -Link: https://android.googlesource.com/platform/hardware/bsp/kernel/nxp/imx-v4.1/+/o-iot-preview-5/arch/arm/boot/dts/imx7d-pico.dtsi#849 - -Cc: Fabio Estevam -Cc: Shawn Guo -Cc: Sascha Hauer - -Signed-off-by: Lech Perczak ---- - arch/arm/boot/dts/imx7d-pico.dtsi | 8 ++++++++ - 1 file changed, 8 insertions(+) - ---- a/arch/arm/boot/dts/nxp/imx/imx7d-pico.dtsi -+++ b/arch/arm/boot/dts/nxp/imx/imx7d-pico.dtsi -@@ -108,6 +108,14 @@ - assigned-clock-rates = <0>, <32768>; - }; - -+&cpu0 { -+ cpu-supply = <&sw1a_reg>; -+}; -+ -+&cpu1 { -+ cpu-supply = <&sw1a_reg>; -+}; -+ - &ecspi3 { - cs-gpios = <&gpio4 11 GPIO_ACTIVE_LOW>; - pinctrl-names = "default"; diff --git a/6.11/target/linux/generic/pending-6.11/920-mangle_bootargs.patch b/6.11/target/linux/generic/pending-6.11/920-mangle_bootargs.patch deleted file mode 100644 index 75f62657..00000000 --- a/6.11/target/linux/generic/pending-6.11/920-mangle_bootargs.patch +++ /dev/null @@ -1,71 +0,0 @@ -From: Imre Kaloz -Subject: init: add CONFIG_MANGLE_BOOTARGS and disable it by default - -Enabling this option renames the bootloader supplied root= -and rootfstype= variables, which might have to be know but -would break the automatisms OpenWrt uses. - -Signed-off-by: Imre Kaloz ---- - init/Kconfig | 9 +++++++++ - init/main.c | 24 ++++++++++++++++++++++++ - 2 files changed, 33 insertions(+) - ---- a/init/Kconfig -+++ b/init/Kconfig -@@ -1811,6 +1811,15 @@ config DEBUG_RSEQ - - If unsure, say N. - -+config MANGLE_BOOTARGS -+ bool "Rename offending bootargs" -+ depends on EXPERT -+ help -+ Sometimes the bootloader passed bogus root= and rootfstype= -+ parameters to the kernel, and while you want to ignore them, -+ you need to know the values f.e. to support dual firmware -+ layouts on the flash. -+ - config HAVE_PERF_EVENTS - bool - help ---- a/init/main.c -+++ b/init/main.c -@@ -609,6 +609,29 @@ static inline void setup_nr_cpu_ids(void - static inline void smp_prepare_cpus(unsigned int maxcpus) { } - #endif - -+#ifdef CONFIG_MANGLE_BOOTARGS -+static void __init mangle_bootargs(char *command_line) -+{ -+ char *rootdev; -+ char *rootfs; -+ -+ rootdev = strstr(command_line, "root=/dev/mtdblock"); -+ -+ if (rootdev) -+ strncpy(rootdev, "mangled_rootblock=", 18); -+ -+ rootfs = strstr(command_line, "rootfstype"); -+ -+ if (rootfs) -+ strncpy(rootfs, "mangled_fs", 10); -+ -+} -+#else -+static void __init mangle_bootargs(char *command_line) -+{ -+} -+#endif -+ - /* - * We need to store the untouched command line for future reference. - * We also need to store the touched command line since the parameter -@@ -898,6 +921,7 @@ void start_kernel(void) - pr_notice("%s", linux_banner); - early_security_init(); - setup_arch(&command_line); -+ mangle_bootargs(command_line); - setup_boot_config(); - setup_command_line(command_line); - setup_nr_cpu_ids(); diff --git a/6.11/target/linux/x86/64/config-6.11 b/6.11/target/linux/x86/64/config-6.11 deleted file mode 100644 index 27aae1ed..00000000 --- a/6.11/target/linux/x86/64/config-6.11 +++ /dev/null @@ -1,537 +0,0 @@ -CONFIG_64BIT=y -CONFIG_ACPI=y -CONFIG_ACPI_AC=y -CONFIG_ACPI_BATTERY=y -# CONFIG_ACPI_BGRT is not set -CONFIG_ACPI_BUTTON=y -# CONFIG_ACPI_CMPC is not set -CONFIG_ACPI_CONTAINER=y -CONFIG_ACPI_CPPC_LIB=y -CONFIG_ACPI_CPU_FREQ_PSS=y -# CONFIG_ACPI_DEBUG is not set -# CONFIG_ACPI_DEBUGGER is not set -# CONFIG_ACPI_DOCK is not set -# CONFIG_ACPI_DPTF is not set -# CONFIG_ACPI_EC_DEBUGFS is not set -CONFIG_ACPI_FAN=y -# CONFIG_ACPI_FPDT is not set -CONFIG_ACPI_HOTPLUG_CPU=y -CONFIG_ACPI_HOTPLUG_IOAPIC=y -# CONFIG_ACPI_I2C_OPREGION is not set -CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y -CONFIG_ACPI_LPIT=y -# CONFIG_ACPI_PCC is not set -# CONFIG_ACPI_PCI_SLOT is not set -# CONFIG_ACPI_PFRUT is not set -CONFIG_ACPI_PRMT=y -CONFIG_ACPI_PROCESSOR=y -# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set -CONFIG_ACPI_PROCESSOR_CSTATE=y -CONFIG_ACPI_PROCESSOR_IDLE=y -CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y -# CONFIG_ACPI_SBS is not set -CONFIG_ACPI_SPCR_TABLE=y -CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y -# CONFIG_ACPI_TAD is not set -CONFIG_ACPI_THERMAL=y -CONFIG_ACPI_VIDEO=y -# CONFIG_ACPI_WMI is not set -# CONFIG_ACRN_GUEST is not set -CONFIG_AGP=y -# CONFIG_AGP_AMD64 is not set -CONFIG_AGP_INTEL=y -# CONFIG_AGP_SIS is not set -# CONFIG_AGP_VIA is not set -# CONFIG_AMD_HSMP is not set -# CONFIG_AMD_PMC is not set -# CONFIG_AMD_PTDMA is not set -# CONFIG_AMD_SFH_HID is not set -CONFIG_ARCH_CPUIDLE_HALTPOLL=y -CONFIG_ARCH_DMA_ADDR_T_64BIT=y -CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y -CONFIG_ARCH_MMAP_RND_BITS=28 -CONFIG_ARCH_MMAP_RND_BITS_MAX=32 -CONFIG_ARCH_MMAP_RND_BITS_MIN=28 -CONFIG_ARCH_MMAP_RND_COMPAT_BITS=8 -CONFIG_ARCH_NR_GPIO=1024 -CONFIG_ARCH_SPARSEMEM_DEFAULT=y -CONFIG_ARCH_WANTS_THP_SWAP=y -# CONFIG_ASUS_TF103C_DOCK is not set -CONFIG_AUDIT_ARCH=y -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BALLOON_COMPACTION=y -# CONFIG_BARCO_P50_GPIO is not set -CONFIG_BLK_DEV_BSGLIB=y -CONFIG_BLK_DEV_BSG_COMMON=y -CONFIG_BLK_DEV_INTEGRITY=y -CONFIG_BLK_DEV_INTEGRITY_T10=y -CONFIG_BLK_DEV_NVME=y -CONFIG_BLK_DEV_SR=y -CONFIG_BLK_MQ_VIRTIO=y -CONFIG_BLK_PM=y -CONFIG_BLOCK_COMPAT=y -# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set -CONFIG_BTT=y -CONFIG_CDROM=y -CONFIG_COMPAT=y -CONFIG_COMPAT_BINFMT_ELF=y -CONFIG_COMPAT_FOR_U64_ALIGNMENT=y -CONFIG_COMPAT_NETLINK_MESSAGES=y -CONFIG_CONNECTOR=y -CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y -CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y -# CONFIG_CPU_IDLE_GOV_HALTPOLL is not set -CONFIG_CPU_RMAP=y -CONFIG_CRC64=y -CONFIG_CRC64_ROCKSOFT=y -CONFIG_CRC_T10DIF=y -CONFIG_CRYPTO_AES_NI_INTEL=y -# CONFIG_CRYPTO_BLOWFISH_X86_64 is not set -# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set -# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set -# CONFIG_CRYPTO_CAMELLIA_X86_64 is not set -# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set -# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set -CONFIG_CRYPTO_CRC64_ROCKSOFT=y -CONFIG_CRYPTO_CRCT10DIF=y -# CONFIG_CRYPTO_CRCT10DIF_PCLMUL is not set -CONFIG_CRYPTO_CRYPTD=y -# CONFIG_CRYPTO_DES3_EDE_X86_64 is not set -CONFIG_CRYPTO_ECB=y -CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 -CONFIG_CRYPTO_LRW=y -# CONFIG_CRYPTO_NHPOLY1305_AVX2 is not set -# CONFIG_CRYPTO_NHPOLY1305_SSE2 is not set -# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set -# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set -# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set -# CONFIG_CRYPTO_SHA1_SSSE3 is not set -# CONFIG_CRYPTO_SHA512_SSSE3 is not set -CONFIG_CRYPTO_SIMD=y -# CONFIG_CRYPTO_SM3_AVX_X86_64 is not set -# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set -# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set -# CONFIG_CRYPTO_TWOFISH_AVX_X86_64 is not set -# CONFIG_CRYPTO_TWOFISH_X86_64 is not set -# CONFIG_CRYPTO_TWOFISH_X86_64_3WAY is not set -CONFIG_CRYPTO_XTS=y -# CONFIG_DEBUG_HOTPLUG_CPU0 is not set -CONFIG_DMA_ACPI=y -CONFIG_DMA_OPS=y -CONFIG_DMA_SHARED_BUFFER=y -CONFIG_DRM=y -CONFIG_DRM_BOCHS=y -CONFIG_DRM_BRIDGE=y -CONFIG_DRM_BUDDY=y -CONFIG_DRM_DP_HELPER=y -CONFIG_DRM_FBDEV_EMULATION=y -CONFIG_DRM_FBDEV_OVERALLOC=100 -CONFIG_DRM_GEM_SHMEM_HELPER=y -# CONFIG_DRM_HYPERV is not set -CONFIG_DRM_I915_CAPTURE_ERROR=y -CONFIG_DRM_I915_COMPRESS_ERROR=y -CONFIG_DRM_I915_FORCE_PROBE="" -CONFIG_DRM_I915_REQUEST_TIMEOUT=20000 -CONFIG_DRM_I915_FENCE_TIMEOUT=10000 -CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250 -CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500 -CONFIG_DRM_I915_PREEMPT_TIMEOUT=640 -CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000 -CONFIG_DRM_I915_STOP_TIMEOUT=100 -CONFIG_DRM_I915_TIMESLICE_DURATION=1 -CONFIG_DRM_KMS_HELPER=y -CONFIG_DRM_MIPI_DSI=y -CONFIG_DRM_NOMODESET=y -CONFIG_DRM_PANEL=y -CONFIG_DRM_PANEL_BRIDGE=y -CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y -# CONFIG_DRM_SIMPLEDRM is not set -# CONFIG_DRM_SSD130X is not set -CONFIG_DRM_TTM=y -CONFIG_DRM_TTM_HELPER=y -CONFIG_DRM_VIRTIO_GPU=y -CONFIG_DRM_VRAM_HELPER=y -CONFIG_DYNAMIC_FTRACE_WITH_REGS=y -CONFIG_EFI=y -CONFIG_EFIVAR_FS=m -# CONFIG_EFI_BOOTLOADER_CONTROL is not set -# CONFIG_EFI_CAPSULE_LOADER is not set -# CONFIG_EFI_CUSTOM_SSDT_OVERLAYS is not set -# CONFIG_EFI_DISABLE_PCI_DMA is not set -CONFIG_EFI_EARLYCON=y -CONFIG_EFI_ESRT=y -# CONFIG_EFI_FAKE_MEMMAP is not set -CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y -# CONFIG_EFI_MIXED is not set -# CONFIG_EFI_PGT_DUMP is not set -# CONFIG_EFI_RCI2_TABLE is not set -CONFIG_EFI_RUNTIME_MAP=y -CONFIG_EFI_RUNTIME_WRAPPERS=y -CONFIG_EFI_STUB=y -# CONFIG_EFI_TEST is not set -# CONFIG_EFI_VARS is not set -CONFIG_FAILOVER=y -CONFIG_FB=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_IMAGEBLIT=y -CONFIG_FB_CMDLINE=y -CONFIG_FB_DEFERRED_IO=y -CONFIG_FB_EFI=y -CONFIG_FB_HYPERV=y -# CONFIG_FB_INTEL is not set -CONFIG_FB_MODE_HELPERS=y -CONFIG_FB_SIMPLE=y -CONFIG_FB_SYS_COPYAREA=y -CONFIG_FB_SYS_FILLRECT=y -CONFIG_FB_SYS_FOPS=y -CONFIG_FB_SYS_IMAGEBLIT=y -CONFIG_FB_TILEBLITTING=y -# CONFIG_FB_VESA is not set -CONFIG_FONT_8x16=y -CONFIG_FONT_8x8=y -CONFIG_FONT_SUPPORT=y -CONFIG_FRAMEBUFFER_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y -CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION=y -# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set -CONFIG_FREEZER=y -CONFIG_FTRACE=y -CONFIG_FUSION_SAS=y -CONFIG_FW_CACHE=y -CONFIG_GART_IOMMU=y -CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y -CONFIG_GENERIC_CPU=y -CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y -CONFIG_GENERIC_IRQ_MIGRATION=y -CONFIG_GENERIC_PENDING_IRQ=y -CONFIG_GPIOLIB=y -CONFIG_GPIOLIB_IRQCHIP=y -CONFIG_GPIO_ACPI=y -# CONFIG_GPIO_CASCADE is not set -CONFIG_GPIO_CDEV=y -CONFIG_GPIO_ICH=y -CONFIG_GPIO_SCH=y -# CONFIG_GPIO_SIM is not set -# CONFIG_GPIO_VIRTIO is not set -CONFIG_GUEST_PERF_EVENTS=y -CONFIG_HALTPOLL_CPUIDLE=y -CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y -CONFIG_HDMI=y -CONFIG_HIBERNATE_CALLBACKS=y -CONFIG_HID_BATTERY_STRENGTH=y -CONFIG_HID_GENERIC=y -CONFIG_HID_HYPERV_MOUSE=y -CONFIG_HOTPLUG_CPU=y -CONFIG_HOTPLUG_PCI=y -CONFIG_HOTPLUG_PCI_ACPI=y -# CONFIG_HOTPLUG_PCI_ACPI_IBM is not set -# CONFIG_HOTPLUG_PCI_CPCI is not set -# CONFIG_HOTPLUG_PCI_PCIE is not set -# CONFIG_HOTPLUG_PCI_SHPC is not set -CONFIG_HOTPLUG_SMT=y -CONFIG_HPET=y -CONFIG_HPET_MMAP=y -# CONFIG_HP_ACCEL is not set -CONFIG_HVC_DRIVER=y -CONFIG_HVC_IRQ=y -CONFIG_HVC_XEN=y -CONFIG_HVC_XEN_FRONTEND=y -CONFIG_HWMON=y -CONFIG_HWMON_VID=y -CONFIG_HW_RANDOM_AMD=y -CONFIG_HW_RANDOM_INTEL=y -CONFIG_HW_RANDOM_VIRTIO=y -CONFIG_HYPERV=y -CONFIG_HYPERVISOR_GUEST=y -CONFIG_HYPERV_BALLOON=y -CONFIG_HYPERV_KEYBOARD=y -CONFIG_HYPERV_NET=y -CONFIG_HYPERV_STORAGE=y -# CONFIG_HYPERV_TESTING is not set -CONFIG_HYPERV_TIMER=y -CONFIG_HYPERV_UTILS=y -# CONFIG_HYPERV_VSOCKETS is not set -CONFIG_I2C=y -CONFIG_I2C_ALGOBIT=y -# CONFIG_I2C_AMD_MP2 is not set -CONFIG_I2C_BOARDINFO=y -# CONFIG_I2C_HID_ACPI is not set -# CONFIG_IA32_EMULATION is not set -CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 -# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set -CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y -CONFIG_INTEL_GTT=y -# CONFIG_INTEL_IDXD_COMPAT is not set -CONFIG_INTEL_IDLE=y -# CONFIG_INTEL_IPS is not set -# CONFIG_INTEL_MEI_HDCP is not set -# CONFIG_INTEL_MEI_PXP is not set -# CONFIG_INTEL_MENLOW is not set -CONFIG_INTEL_PCH_THERMAL=y -# CONFIG_INTEL_SAR_INT1092 is not set -# CONFIG_INTEL_SCU_PLATFORM is not set -CONFIG_INTEL_SOC_DTS_IOSF_CORE=y -CONFIG_INTEL_SOC_DTS_THERMAL=y -# CONFIG_INTEL_SPEED_SELECT_INTERFACE is not set -# CONFIG_INTEL_TURBO_MAX_3 is not set -# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set -CONFIG_INTERVAL_TREE=y -# CONFIG_IOMMU_DEBUG is not set -CONFIG_IOMMU_HELPER=y -CONFIG_IOSF_MBI=y -# CONFIG_IOSF_MBI_DEBUG is not set -# CONFIG_ISCSI_IBFT is not set -CONFIG_ISO9660_FS=y -CONFIG_KALLSYMS=y -CONFIG_KALLSYMS_ABSOLUTE_PERCPU=y -CONFIG_KCMP=y -CONFIG_KVM_GUEST=y -CONFIG_LEDS_GPIO=y -# CONFIG_LEGACY_VSYSCALL_EMULATE is not set -CONFIG_LEGACY_VSYSCALL_NONE=y -# CONFIG_LEGACY_VSYSCALL_XONLY is not set -CONFIG_LIBNVDIMM=y -CONFIG_HAVE_LIVEPATCH=y -CONFIG_LIVEPATCH=y -CONFIG_LOCK_SPIN_ON_OWNER=y -CONFIG_LPC_ICH=y -CONFIG_LPC_SCH=y -CONFIG_MAILBOX=y -# CONFIG_MAXSMP is not set -CONFIG_MEMORY_BALLOON=y -CONFIG_MEMREGION=y -# CONFIG_MERAKI_MX100 is not set -CONFIG_MFD_CORE=y -# CONFIG_MFD_INTEL_LPSS_ACPI is not set -# CONFIG_MFD_INTEL_PMC_BXT is not set -# CONFIG_MFD_SIMPLE_MFD_I2C is not set -CONFIG_MMC=y -CONFIG_MMC_BLOCK=y -CONFIG_MMC_CQHCI=y -CONFIG_MMC_RICOH_MMC=y -CONFIG_MMC_SDHCI=y -CONFIG_MMC_SDHCI_ACPI=y -CONFIG_MMC_SDHCI_IO_ACCESSORS=y -CONFIG_MMC_SDHCI_PCI=y -# CONFIG_MMC_SDHCI_PLTFM is not set -# CONFIG_MMC_WBSD is not set -CONFIG_MMU_NOTIFIER=y -CONFIG_MODULES_USE_ELF_RELA=y -# CONFIG_MPSC is not set -CONFIG_MUTEX_SPIN_ON_OWNER=y -CONFIG_ND_CLAIM=y -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_NET_FAILOVER=y -CONFIG_NET_FLOW_LIMIT=y -# CONFIG_NITRO_ENCLAVES is not set -CONFIG_NR_CPUS=512 -CONFIG_NR_CPUS_DEFAULT=64 -CONFIG_NR_CPUS_RANGE_BEGIN=2 -CONFIG_NR_CPUS_RANGE_END=512 -CONFIG_NVME_CORE=y -# CONFIG_NVME_HWMON is not set -CONFIG_NVME_MULTIPATH=y -# CONFIG_NVME_VERBOSE_ERRORS is not set -CONFIG_OUTPUT_FORMAT="elf64-x86-64" -CONFIG_PADATA=y -CONFIG_PAGE_REPORTING=y -# CONFIG_PAGE_TABLE_CHECK is not set -CONFIG_PAGE_TABLE_ISOLATION=y -CONFIG_PARAVIRT=y -CONFIG_PARAVIRT_CLOCK=y -# CONFIG_PARAVIRT_DEBUG is not set -CONFIG_PARAVIRT_SPINLOCKS=y -CONFIG_PARAVIRT_XXL=y -CONFIG_PATA_AMD=y -CONFIG_PATA_ATIIXP=y -CONFIG_PATA_MPIIX=y -CONFIG_PATA_OLDPIIX=y -CONFIG_PATA_PLATFORM=y -CONFIG_PATA_TIMINGS=y -CONFIG_PATA_VIA=y -CONFIG_PCC=y -# CONFIG_PCENGINES_APU2 is not set -CONFIG_PCIEAER=y -CONFIG_PCIEPORTBUS=y -CONFIG_PCIE_PME=y -CONFIG_PCI_HYPERV=y -CONFIG_PCI_HYPERV_INTERFACE=y -# CONFIG_PCI_MMCONFIG is not set -CONFIG_PCI_XEN=y -CONFIG_PGTABLE_LEVELS=4 -CONFIG_PHYSICAL_ALIGN=0x1000000 -CONFIG_PHYS_ADDR_T_64BIT=y -CONFIG_PINCTRL=y -# CONFIG_PINCTRL_ALDERLAKE is not set -# CONFIG_PINCTRL_BAYTRAIL is not set -# CONFIG_PINCTRL_BROXTON is not set -# CONFIG_PINCTRL_CANNONLAKE is not set -# CONFIG_PINCTRL_CHERRYVIEW is not set -# CONFIG_PINCTRL_DENVERTON is not set -# CONFIG_PINCTRL_ELKHARTLAKE is not set -# CONFIG_PINCTRL_EMMITSBURG is not set -# CONFIG_PINCTRL_GEMINILAKE is not set -# CONFIG_PINCTRL_JASPERLAKE is not set -# CONFIG_PINCTRL_LAKEFIELD is not set -# CONFIG_PINCTRL_LEWISBURG is not set -# CONFIG_PINCTRL_LYNXPOINT is not set -# CONFIG_PINCTRL_SUNRISEPOINT is not set -# CONFIG_PINCTRL_TIGERLAKE is not set -CONFIG_PM=y -# CONFIG_PMIC_OPREGION is not set -CONFIG_PM_CLK=y -CONFIG_PM_SLEEP=y -CONFIG_PM_SLEEP_SMP=y -CONFIG_PNP=y -CONFIG_PNPACPI=y -CONFIG_PNP_DEBUG_MESSAGES=y -CONFIG_PROC_EVENTS=y -CONFIG_PVH=y -CONFIG_QUEUED_RWLOCKS=y -CONFIG_QUEUED_SPINLOCKS=y -CONFIG_RAS=y -CONFIG_RELAY=y -CONFIG_RELOCATABLE=y -CONFIG_RESET_ATTACK_MITIGATION=y -CONFIG_RFS_ACCEL=y -CONFIG_RPS=y -CONFIG_RTC_I2C_AND_SPI=y -CONFIG_RWSEM_SPIN_ON_OWNER=y -# CONFIG_SAMSUNG_Q10 is not set -CONFIG_SATA_AHCI=y -# CONFIG_SCHED_CORE is not set -CONFIG_SCHED_MC=y -CONFIG_SCHED_MC_PRIO=y -CONFIG_SCHED_SMT=y -CONFIG_SCSI_SAS_ATTRS=y -CONFIG_SCSI_VIRTIO=y -# CONFIG_SENSORS_ASUS_EC is not set -CONFIG_SENSORS_CORETEMP=y -CONFIG_SENSORS_FAM15H_POWER=y -CONFIG_SENSORS_I5500=y -CONFIG_SENSORS_K10TEMP=y -CONFIG_SENSORS_K8TEMP=y -# CONFIG_SENSORS_SY7636A is not set -# CONFIG_SENSORS_TMP464 is not set -CONFIG_SENSORS_VIA_CPUTEMP=y -CONFIG_SERIAL_8250_PNP=y -CONFIG_SERIAL_MCTRL_GPIO=y -CONFIG_SMP=y -CONFIG_SOCK_RX_QUEUE_MAPPING=y -CONFIG_SPARSEMEM=y -CONFIG_SPARSEMEM_EXTREME=y -# CONFIG_SPARSEMEM_VMEMMAP is not set -CONFIG_SPARSEMEM_VMEMMAP_ENABLE=y -CONFIG_STACK_VALIDATION=y -CONFIG_SWIOTLB=y -CONFIG_SWIOTLB_XEN=y -CONFIG_SYNC_FILE=y -# CONFIG_SYSTEM76_ACPI is not set -CONFIG_SYSVIPC_COMPAT=y -CONFIG_SYS_HYPERVISOR=y -CONFIG_THERMAL_GOV_USER_SPACE=y -CONFIG_THERMAL_HWMON=y -CONFIG_THERMAL_WRITABLE_TRIPS=y -# CONFIG_TOSHIBA_BT_RFKILL is not set -# CONFIG_UACCE is not set -# CONFIG_UCLAMP_TASK is not set -CONFIG_UCS2_STRING=y -# CONFIG_UNWINDER_ORC is not set -CONFIG_USB_STORAGE=y -# CONFIG_USB_XEN_HCD is not set -CONFIG_VIRTIO=y -CONFIG_VIRTIO_BALLOON=y -CONFIG_VIRTIO_BLK=y -CONFIG_VIRTIO_CONSOLE=y -CONFIG_VIRTIO_DMA_SHARED_BUFFER=y -CONFIG_VIRTIO_MMIO=y -CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y -CONFIG_VIRTIO_NET=y -CONFIG_VIRTIO_PCI=y -CONFIG_VIRTIO_PCI_LEGACY=y -CONFIG_VIRTIO_PCI_LIB=y -CONFIG_VIRTIO_PCI_LIB_LEGACY=y -# CONFIG_VIRTIO_PMEM is not set -# CONFIG_VIRTIO_VSOCKETS is not set -CONFIG_VIRTIO_VSOCKETS_COMMON=y -CONFIG_VIRT_DRIVERS=y -CONFIG_VMAP_PFN=y -CONFIG_VMAP_STACK=y -# CONFIG_VMD is not set -CONFIG_VMGENID=y -CONFIG_VMWARE_BALLOON=y -CONFIG_VMWARE_PVSCSI=y -CONFIG_VMWARE_VMCI=y -CONFIG_VMWARE_VMCI_VSOCKETS=y -CONFIG_VMXNET3=y -CONFIG_VSOCKETS=y -CONFIG_VSOCKETS_LOOPBACK=y -CONFIG_VT_CONSOLE_SLEEP=y -CONFIG_WATCHDOG_CORE=y -# CONFIG_WIRELESS_HOTKEY is not set -# CONFIG_X86_5LEVEL is not set -CONFIG_X86_64=y -CONFIG_X86_64_SMP=y -CONFIG_X86_ACPI_CPUFREQ=y -# CONFIG_X86_ACPI_CPUFREQ_CPB is not set -CONFIG_X86_AMD_FREQ_SENSITIVITY=y -# CONFIG_X86_AMD_PLATFORM_DEVICE is not set -CONFIG_X86_AMD_PSTATE=y -CONFIG_X86_CPUID=y -CONFIG_X86_DIRECT_GBPAGES=y -CONFIG_X86_HV_CALLBACK_VECTOR=y -CONFIG_X86_INTEL_LPSS=y -# CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS is not set -CONFIG_X86_INTEL_PSTATE=y -CONFIG_X86_KERNEL_IBT=y -CONFIG_X86_MINIMUM_CPU_FAMILY=64 -# CONFIG_X86_PCC_CPUFREQ is not set -CONFIG_X86_PKG_TEMP_THERMAL=y -# CONFIG_X86_PMEM_LEGACY is not set -CONFIG_X86_PM_TIMER=y -# CONFIG_X86_POWERNOW_K8 is not set -CONFIG_X86_SGX=y -# CONFIG_X86_VSYSCALL_EMULATION is not set -CONFIG_X86_X2APIC=y -CONFIG_X86_X32_ABI=y -CONFIG_XARRAY_MULTI=y -CONFIG_XEN=y -CONFIG_XENFS=y -CONFIG_XEN_512GB=y -CONFIG_XEN_ACPI=y -CONFIG_XEN_ACPI_PROCESSOR=y -CONFIG_XEN_AUTO_XLATE=y -# CONFIG_XEN_BACKEND is not set -CONFIG_XEN_BALLOON=y -CONFIG_XEN_BLKDEV_FRONTEND=y -CONFIG_XEN_COMPAT_XENFS=y -CONFIG_XEN_DEBUG_FS=y -CONFIG_XEN_DEV_EVTCHN=y -CONFIG_XEN_DOM0=y -CONFIG_XEN_EFI=y -CONFIG_XEN_FBDEV_FRONTEND=y -CONFIG_XEN_GNTDEV=y -CONFIG_XEN_GRANT_DEV_ALLOC=y -CONFIG_XEN_HAVE_PVMMU=y -CONFIG_XEN_HAVE_VPMU=y -# CONFIG_XEN_MCE_LOG is not set -CONFIG_XEN_NETDEV_FRONTEND=y -CONFIG_XEN_PCIDEV_FRONTEND=y -CONFIG_XEN_PRIVCMD=y -CONFIG_XEN_PV=y -CONFIG_XEN_PVH=y -CONFIG_XEN_PVHVM=y -CONFIG_XEN_PVHVM_GUEST=y -CONFIG_XEN_PVHVM_SMP=y -CONFIG_XEN_PV_DOM0=y -CONFIG_XEN_PV_SMP=y -CONFIG_XEN_SAVE_RESTORE=y -CONFIG_XEN_SCSI_FRONTEND=y -CONFIG_XEN_SYMS=y -CONFIG_XEN_SYS_HYPERVISOR=y -CONFIG_XEN_WDT=y -CONFIG_XEN_XENBUS_FRONTEND=y -CONFIG_XPS=y -CONFIG_ZLIB_DEFLATE=y -CONFIG_ZONE_DMA32=y diff --git a/6.11/target/linux/x86/config-6.11 b/6.11/target/linux/x86/config-6.11 deleted file mode 100644 index 68de9ca0..00000000 --- a/6.11/target/linux/x86/config-6.11 +++ /dev/null @@ -1,618 +0,0 @@ -# CONFIG_60XX_WDT is not set -# CONFIG_64BIT is not set -CONFIG_ACPI=y -CONFIG_ACPI_AC=y -CONFIG_ACPI_BATTERY=y -# CONFIG_ACPI_CMPC is not set -# CONFIG_ACPI_CONTAINER is not set -CONFIG_ACPI_CPPC_LIB=y -CONFIG_ACPI_CPU_FREQ_PSS=y -# CONFIG_ACPI_DEBUG is not set -# CONFIG_ACPI_DEBUGGER is not set -# CONFIG_ACPI_DOCK is not set -# CONFIG_ACPI_DPTF is not set -# CONFIG_ACPI_EC_DEBUGFS is not set -CONFIG_ACPI_FAN=y -# CONFIG_ACPI_FPDT is not set -CONFIG_ACPI_HOTPLUG_IOAPIC=y -CONFIG_ACPI_I2C_OPREGION=y -CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y -CONFIG_ACPI_LPIT=y -CONFIG_ACPI_PCC=y -# CONFIG_ACPI_PCI_SLOT is not set -# CONFIG_ACPI_PFRUT is not set -# CONFIG_ACPI_PRMT is not set -CONFIG_ACPI_PROCESSOR=y -# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set -CONFIG_ACPI_PROCESSOR_CSTATE=y -CONFIG_ACPI_PROCESSOR_IDLE=y -CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y -# CONFIG_ACPI_SBS is not set -CONFIG_ACPI_SPCR_TABLE=y -CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y -CONFIG_ACPI_THERMAL=y -# CONFIG_ACPI_TINY_POWER_BUTTON is not set -# CONFIG_ACPI_WMI is not set -# CONFIG_ACQUIRE_WDT is not set -# CONFIG_ACRN_GUEST is not set -# CONFIG_ADVANTECH_WDT is not set -# CONFIG_ALIM1535_WDT is not set -# CONFIG_AMD_HSMP is not set -CONFIG_AMD_NB=y -# CONFIG_AMD_PMC is not set -# CONFIG_AMD_PTDMA is not set -# CONFIG_AMD_SFH_HID is not set -CONFIG_APERTURE_HELPERS=y -CONFIG_ARCH_CLOCKSOURCE_INIT=y -CONFIG_ARCH_CORRECT_STACKTRACE_ON_KRETPROBE=y -CONFIG_ARCH_DMA_ADDR_T_64BIT=y -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_MAY_HAVE_PC_FDC=y -CONFIG_ARCH_MHP_MEMMAP_ON_MEMORY_ENABLE=y -CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y -CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y -CONFIG_ARCH_MIGHT_HAVE_PC_SERIO=y -CONFIG_ARCH_MMAP_RND_BITS=28 -CONFIG_ARCH_MMAP_RND_BITS_MAX=32 -CONFIG_ARCH_MMAP_RND_BITS_MIN=28 -CONFIG_ARCH_NR_GPIO=1024 -CONFIG_ARCH_SPARSEMEM_DEFAULT=y -CONFIG_ARCH_SPARSEMEM_ENABLE=y -CONFIG_ARCH_STACKWALK=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_ARCH_USES_HIGH_VMA_FLAGS=y -CONFIG_ARCH_USES_PG_UNCACHED=y -CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT=y -CONFIG_ARCH_WANTS_NO_INSTR=y -CONFIG_ARCH_WANTS_THP_SWAP=y -# CONFIG_ASUS_TF103C_DOCK is not set -CONFIG_ATA=y -CONFIG_ATA_GENERIC=y -CONFIG_ATA_PIIX=y -CONFIG_AUDIT_ARCH=y -CONFIG_BACKLIGHT_CLASS_DEVICE=y -# CONFIG_BARCO_P50_GPIO is not set -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_DEV_SD=y -CONFIG_BLK_MQ_PCI=y -CONFIG_BLOCK_LEGACY_AUTOLOAD=y -CONFIG_BUILDTIME_MCOUNT_SORT=y -CONFIG_CC_IMPLICIT_FALLTHROUGH="-Wimplicit-fallthrough=5" -CONFIG_CC_NO_ARRAY_BOUNDS=y -CONFIG_CLKBLD_I8253=y -CONFIG_CLKEVT_I8253=y -CONFIG_CLOCKSOURCE_VALIDATE_LAST_CYCLE=y -CONFIG_CLOCKSOURCE_WATCHDOG=y -CONFIG_CLOCKSOURCE_WATCHDOG_MAX_SKEW_US=100 -CONFIG_COMMON_CLK=y -CONFIG_COMPACT_UNEVICTABLE_DEFAULT=1 -CONFIG_COMPAT_32BIT_TIME=y -CONFIG_CONSOLE_TRANSLATIONS=y -CONFIG_CONTEXT_SWITCH_TRACER=y -CONFIG_CONTEXT_TRACKING=y -CONFIG_CONTEXT_TRACKING_IDLE=y -# CONFIG_CPU5_WDT 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 is not set -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set -# CONFIG_CPU_FREQ_GOV_USERSPACE is not set -CONFIG_CPU_FREQ_STAT=y -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_SUP_AMD=y -CONFIG_CPU_SUP_CENTAUR=y -CONFIG_CPU_SUP_HYGON=y -CONFIG_CPU_SUP_INTEL=y -CONFIG_CPU_SUP_ZHAOXIN=y -CONFIG_CRASH_CORE=y -CONFIG_CRC16=y -# CONFIG_CRYPTO_BLOWFISH_X86_64 is not set -# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64 is not set -# CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64 is not set -# CONFIG_CRYPTO_CAMELLIA_X86_64 is not set -# CONFIG_CRYPTO_CAST5_AVX_X86_64 is not set -# CONFIG_CRYPTO_CAST6_AVX_X86_64 is not set -CONFIG_CRYPTO_CRC32=y -CONFIG_CRYPTO_CRC32C=y -# CONFIG_CRYPTO_CRC32_PCLMUL is not set -# CONFIG_CRYPTO_DES3_EDE_X86_64 is not set -CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y -CONFIG_CRYPTO_LIB_POLY1305_RSIZE=11 -CONFIG_CRYPTO_LIB_SHA1=y -CONFIG_CRYPTO_LIB_SHA256=y -CONFIG_CRYPTO_LIB_UTILS=y -# CONFIG_CRYPTO_NHPOLY1305_AVX2 is not set -# CONFIG_CRYPTO_NHPOLY1305_SSE2 is not set -CONFIG_CRYPTO_RNG2=y -# CONFIG_CRYPTO_SERPENT_AVX2_X86_64 is not set -# CONFIG_CRYPTO_SERPENT_AVX_X86_64 is not set -# CONFIG_CRYPTO_SERPENT_SSE2_X86_64 is not set -# CONFIG_CRYPTO_SHA1_SSSE3 is not set -# CONFIG_CRYPTO_SHA512_SSSE3 is not set -# CONFIG_CRYPTO_SM3_AVX_X86_64 is not set -# CONFIG_CRYPTO_SM4_AESNI_AVX2_X86_64 is not set -# CONFIG_CRYPTO_SM4_AESNI_AVX_X86_64 is not set -# CONFIG_CRYPTO_TWOFISH_AVX_X86_64 is not set -# CONFIG_CRYPTO_TWOFISH_X86_64 is not set -# CONFIG_CRYPTO_TWOFISH_X86_64_3WAY is not set -# CONFIG_CX_ECAT is not set -CONFIG_DCACHE_WORD_ACCESS=y -# CONFIG_DEBUG_BOOT_PARAMS is not set -# CONFIG_DEBUG_ENTRY is not set -CONFIG_DEBUG_INFO=y -# CONFIG_DEBUG_KMAP_LOCAL_FORCE_MAP is not set -CONFIG_DEBUG_MEMORY_INIT=y -CONFIG_DEBUG_MISC=y -# CONFIG_DEBUG_NMI_SELFTEST is not set -# CONFIG_DEBUG_TLBFLUSH is not set -CONFIG_DECOMPRESS_BZIP2=y -CONFIG_DECOMPRESS_GZIP=y -CONFIG_DMADEVICES=y -CONFIG_DMA_ACPI=y -CONFIG_DMA_SHARED_BUFFER=y -CONFIG_DMI=y -CONFIG_DMIID=y -CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y -CONFIG_DMI_SYSFS=y -CONFIG_DNOTIFY=y -CONFIG_DRM=y -CONFIG_DRM_BRIDGE=y -CONFIG_DRM_NOMODESET=y -CONFIG_DRM_PANEL=y -CONFIG_DRM_PANEL_BRIDGE=y -CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y -CONFIG_DUMMY_CONSOLE=y -CONFIG_DYNAMIC_FTRACE=y -CONFIG_DYNAMIC_FTRACE_WITH_ARGS=y -CONFIG_DYNAMIC_FTRACE_WITH_DIRECT_CALLS=y -CONFIG_DYNAMIC_FTRACE_WITH_REGS=y -CONFIG_DYNAMIC_MEMORY_LAYOUT=y -CONFIG_DYNAMIC_SIGFRAME=y -CONFIG_EARLY_PRINTK=y -# CONFIG_EARLY_PRINTK_DBGP is not set -CONFIG_EDAC_ATOMIC_SCRUB=y -CONFIG_EDAC=y -# CONFIG_EDAC_DECODE_MCE is not set -# CONFIG_EDAC_DEBUG is not set -CONFIG_EDAC_SUPPORT=y -CONFIG_EDAC_LEGACY_SYSFS=y -# CONFIG_EDAC_E7XXX is not set -CONFIG_EDAC_E752X=y -CONFIG_EDAC_I82975X=y -CONFIG_EDAC_I3000=y -CONFIG_EDAC_I3200=y -CONFIG_EDAC_IE31200=y -CONFIG_EDAC_X38=y -CONFIG_EDAC_I5400=y -CONFIG_EDAC_I7CORE=y -CONFIG_EDAC_I5000=y -CONFIG_EDAC_I5100=y -CONFIG_EDAC_I7300=y -# CONFIG_EDAC_I82875P is not set -# CONFIG_EDAC_I82860 is not set -CONFIG_EDAC_PND2=y -# CONFIG_EDAC_R82600 is not set -# CONFIG_EDAC_AMD76X is not set -# CONFIG_EDD is not set -CONFIG_EFI_HANDOVER_PROTOCOL=y -# CONFIG_EFI_MIXED is not set -# CONFIG_EISA is not set -# CONFIG_EUROTECH_WDT is not set -CONFIG_EVENT_TRACING=y -CONFIG_EXCLUSIVE_SYSTEM_RAM=y -CONFIG_EXT4_FS=y -CONFIG_F2FS_FS=y -# CONFIG_F71808E_WDT is not set -CONFIG_FB_CMDLINE=y -CONFIG_FIRMWARE_MEMMAP=y -CONFIG_FIX_EARLYCON_MEM=y -# CONFIG_FPROBE is not set -CONFIG_FRAME_POINTER=y -CONFIG_FS_IOMAP=y -CONFIG_FS_MBCACHE=y -CONFIG_FTRACE=y -CONFIG_FTRACE_MCOUNT_RECORD=y -CONFIG_FTRACE_MCOUNT_USE_CC=y -# CONFIG_FTRACE_SORT_STARTUP_TEST is not set -# CONFIG_FTRACE_SYSCALLS is not set -CONFIG_FUNCTION_GRAPH_TRACER=y -# CONFIG_FUNCTION_PROFILER is not set -CONFIG_FUNCTION_TRACER=y -CONFIG_FUSION=y -# CONFIG_FUSION_CTL is not set -# CONFIG_FUSION_LOGGING is not set -CONFIG_FUSION_MAX_SGE=128 -CONFIG_FUSION_SPI=y -CONFIG_FW_LOADER_PAGED_BUF=y -CONFIG_FW_LOADER_SYSFS=y -# CONFIG_GART_IOMMU is not set -CONFIG_GCC11_NO_ARRAY_BOUNDS=y -CONFIG_GCC12_NO_ARRAY_BOUNDS=y -CONFIG_GENERIC_ALLOCATOR=y -CONFIG_GENERIC_BUG=y -CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y -CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y -CONFIG_GENERIC_CMOS_UPDATE=y -CONFIG_GENERIC_CPU=y -CONFIG_GENERIC_CPU_AUTOPROBE=y -CONFIG_GENERIC_CPU_VULNERABILITIES=y -CONFIG_GENERIC_EARLY_IOREMAP=y -CONFIG_GENERIC_ENTRY=y -CONFIG_GENERIC_GETTIMEOFDAY=y -CONFIG_GENERIC_IOMAP=y -CONFIG_GENERIC_IRQ_MATRIX_ALLOCATOR=y -CONFIG_GENERIC_IRQ_RESERVATION_MODE=y -CONFIG_GENERIC_IRQ_SHOW=y -CONFIG_GENERIC_ISA_DMA=y -CONFIG_GENERIC_MSI_IRQ=y -CONFIG_GENERIC_MSI_IRQ_DOMAIN=y -CONFIG_GENERIC_PCI_IOMAP=y -CONFIG_GENERIC_SMP_IDLE_THREAD=y -CONFIG_GENERIC_STRNCPY_FROM_USER=y -CONFIG_GENERIC_STRNLEN_USER=y -CONFIG_GENERIC_TIME_VSYSCALL=y -CONFIG_GENERIC_TRACER=y -CONFIG_GLOB=y -CONFIG_GPIO_ACPI=y -CONFIG_GPIO_CDEV=y -# CONFIG_HANGCHECK_TIMER is not set -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_HARDLOCKUP_CHECK_TIMESTAMP=y -CONFIG_HAS_DMA=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT_MAP=y -CONFIG_HDMI=y -CONFIG_HID=y -# CONFIG_HIST_TRIGGERS is not set -# CONFIG_HPET is not set -CONFIG_HPET_EMULATE_RTC=y -CONFIG_HPET_TIMER=y -# CONFIG_HP_ACCEL is not set -CONFIG_HWMON=y -CONFIG_HW_CONSOLE=y -CONFIG_HW_RANDOM=y -CONFIG_HW_RANDOM_VIA=y -# CONFIG_HYPERVISOR_GUEST is not set -CONFIG_HZ_PERIODIC=y -CONFIG_I2C=y -CONFIG_I2C_ALGOBIT=y -# CONFIG_I2C_AMD_MP2 is not set -CONFIG_I2C_BOARDINFO=y -# CONFIG_I2C_HID_ACPI is not set -CONFIG_I8253_LOCK=y -# CONFIG_IA32_EMULATION is not set -CONFIG_IA32_FEAT_CTL=y -# CONFIG_IB700_WDT is not set -# CONFIG_IBMASR is not set -# CONFIG_IBM_RTL is not set -# CONFIG_IE6XX_WDT is not set -CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 -CONFIG_INITRAMFS_SOURCE="" -CONFIG_INPUT=y -CONFIG_INPUT_KEYBOARD=y -CONFIG_INPUT_VIVALDIFMAP=y -CONFIG_INSTRUCTION_DECODER=y -# CONFIG_INTEL_HFI_THERMAL is not set -# CONFIG_INTEL_IDXD_COMPAT is not set -# CONFIG_INTEL_IPS is not set -# CONFIG_INTEL_LDMA is not set -# CONFIG_INTEL_MENLOW is not set -# CONFIG_INTEL_PCH_THERMAL is not set -# CONFIG_INTEL_POWERCLAMP is not set -# CONFIG_INTEL_SAR_INT1092 is not set -# CONFIG_INTEL_SCU_PCI is not set -# CONFIG_INTEL_SCU_PLATFORM is not set -# CONFIG_INTEL_SOC_DTS_THERMAL is not set -# CONFIG_INTEL_SPEED_SELECT_INTERFACE is not set -# CONFIG_INTEL_UNCORE_FREQ_CONTROL is not set -# CONFIG_INTEL_VSEC is not set -# CONFIG_IOSF_MBI is not set -CONFIG_IO_DELAY_0X80=y -# CONFIG_IO_DELAY_0XED is not set -# CONFIG_IO_DELAY_NONE is not set -# CONFIG_IO_DELAY_UDELAY is not set -CONFIG_IO_URING=y -CONFIG_IRQ_DOMAIN=y -CONFIG_IRQ_DOMAIN_HIERARCHY=y -CONFIG_IRQ_FORCED_THREADING=y -CONFIG_IRQ_WORK=y -CONFIG_ISA_DMA_API=y -# CONFIG_ISCSI_IBFT is not set -# CONFIG_IT8712F_WDT is not set -# CONFIG_IT87_WDT is not set -# CONFIG_ITCO_WDT is not set -CONFIG_JBD2=y -CONFIG_KALLSYMS=y -CONFIG_KALLSYMS_ALL=y -CONFIG_KCMP=y -CONFIG_KEXEC=y -CONFIG_KEXEC_CORE=y -CONFIG_KEYBOARD_ATKBD=y -# CONFIG_LEGACY_VSYSCALL_NONE is not set -CONFIG_LEGACY_VSYSCALL_XONLY=y -CONFIG_LOCK_DEBUGGING_SUPPORT=y -# CONFIG_MACHZ_WDT is not set -CONFIG_MAILBOX=y -# CONFIG_MATOM is not set -# CONFIG_MAXSMP is not set -# CONFIG_MCORE2 is not set -CONFIG_MEMFD_CREATE=y -# CONFIG_MFD_INTEL_LPSS_ACPI is not set -# CONFIG_MFD_INTEL_LPSS_PCI is not set -# CONFIG_MFD_INTEL_PMC_BXT is not set -CONFIG_MICROCODE=y -CONFIG_MICROCODE_AMD=y -CONFIG_MICROCODE_INTEL=y -# CONFIG_MICROCODE_LATE_LOADING is not set -CONFIG_MIGRATION=y -# CONFIG_MK8 is not set -CONFIG_MMCONF_FAM10H=y -CONFIG_MMU_GATHER_MERGE_VMAS=y -# CONFIG_MODIFY_LDT_SYSCALL is not set -CONFIG_MODULES_TREE_LOOKUP=y -CONFIG_MODULES_USE_ELF_RELA=y -# CONFIG_MPSC is not set -# CONFIG_MTD is not set -CONFIG_MTRR=y -# CONFIG_MTRR_SANITIZER is not set -CONFIG_NAMESPACES=y -CONFIG_NEED_DMA_MAP_STATE=y -CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y -CONFIG_NEED_PER_CPU_KM=y -CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y -CONFIG_NEED_SG_DMA_LENGTH=y -# CONFIG_NET_NS is not set -CONFIG_NET_VENDOR_DAVICOM=y -CONFIG_NET_VENDOR_FUNGIBLE=y -CONFIG_NLS=y -CONFIG_NOP_TRACER=y -CONFIG_NR_CPUS=1 -CONFIG_NR_CPUS_DEFAULT=1 -CONFIG_NR_CPUS_RANGE_BEGIN=1 -CONFIG_NR_CPUS_RANGE_END=1 -CONFIG_NVRAM=y -CONFIG_OBJTOOL=y -# CONFIG_OF is not set -CONFIG_OUTPUT_FORMAT="elf64-x86-64" -# CONFIG_P2SB is not set -CONFIG_PAGE_POOL=y -CONFIG_PAGE_SIZE_LESS_THAN_256KB=y -CONFIG_PAGE_SIZE_LESS_THAN_64KB=y -CONFIG_PAGE_TABLE_ISOLATION=y -CONFIG_PC104=y -# CONFIG_PC87413_WDT is not set -CONFIG_PCC=y -# CONFIG_PCENGINES_APU2 is not set -CONFIG_PCI=y -CONFIG_PCI_ATS=y -CONFIG_PCI_DIRECT=y -CONFIG_PCI_DOMAINS=y -# CONFIG_PCI_HYPERV is not set -# CONFIG_PCI_HYPERV_INTERFACE is not set -CONFIG_PCI_IOV=y -CONFIG_PCI_LABEL=y -CONFIG_PCI_LOCKLESS_CONFIG=y -CONFIG_PCI_MMCONFIG=y -CONFIG_PCI_MSI=y -CONFIG_PCI_MSI_IRQ_DOMAIN=y -CONFIG_PCSPKR_PLATFORM=y -CONFIG_PERF_EVENTS=y -CONFIG_PERF_EVENTS_AMD_BRS=y -CONFIG_PERF_EVENTS_AMD_POWER=y -CONFIG_PERF_EVENTS_AMD_UNCORE=y -CONFIG_PERF_EVENTS_INTEL_CSTATE=y -CONFIG_PERF_EVENTS_INTEL_RAPL=y -CONFIG_PERF_EVENTS_INTEL_UNCORE=y -CONFIG_PGTABLE_LEVELS=5 -CONFIG_PHYSICAL_ALIGN=0x200000 -CONFIG_PHYSICAL_START=0x1000000 -CONFIG_PHYS_ADDR_T_64BIT=y -# CONFIG_PHY_INTEL_LGM_EMMC is not set -CONFIG_PINCTRL=y -# CONFIG_PINCTRL_ALDERLAKE is not set -# CONFIG_PINCTRL_BAYTRAIL is not set -# CONFIG_PINCTRL_BROXTON is not set -# CONFIG_PINCTRL_CANNONLAKE is not set -# CONFIG_PINCTRL_CHERRYVIEW is not set -# CONFIG_PINCTRL_DENVERTON is not set -# CONFIG_PINCTRL_ELKHARTLAKE is not set -# CONFIG_PINCTRL_EMMITSBURG is not set -# CONFIG_PINCTRL_GEMINILAKE is not set -# CONFIG_PINCTRL_JASPERLAKE is not set -# CONFIG_PINCTRL_LAKEFIELD is not set -# CONFIG_PINCTRL_LEWISBURG is not set -# CONFIG_PINCTRL_LYNXPOINT is not set -# CONFIG_PINCTRL_SUNRISEPOINT is not set -# CONFIG_PINCTRL_TIGERLAKE is not set -# CONFIG_PMIC_OPREGION is not set -CONFIG_PNP=y -CONFIG_PNPACPI=y -CONFIG_PNP_DEBUG_MESSAGES=y -CONFIG_POSIX_CPU_TIMERS_TASK_WORK=y -CONFIG_POWER_SUPPLY=y -CONFIG_PREEMPTION=y -CONFIG_PREEMPT_BUILD=y -CONFIG_PREEMPT_COUNT=y -CONFIG_PREEMPT_DYNAMIC=y -CONFIG_PREEMPT_RCU=y -# CONFIG_PROCESSOR_SELECT is not set -CONFIG_PROC_PAGE_MONITOR=y -CONFIG_PROC_PID_ARCH_STATUS=y -# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set -CONFIG_PTP_1588_CLOCK_OPTIONAL=y -# CONFIG_PUNIT_ATOM_DEBUG is not set -CONFIG_RANDOMIZE_KSTACK_OFFSET=y -CONFIG_RANDSTRUCT_NONE=y -CONFIG_RATIONAL=y -CONFIG_RD_BZIP2=y -CONFIG_RD_GZIP=y -# CONFIG_RETHUNK is not set -CONFIG_RETPOLINE=y -CONFIG_RING_BUFFER=y -CONFIG_RTC_CLASS=y -CONFIG_RTC_I2C_AND_SPI=y -CONFIG_RTC_MC146818_LIB=y -# CONFIG_RV is not set -# CONFIG_SAMSUNG_Q10 is not set -CONFIG_SATA_HOST=y -# CONFIG_SBC_EPX_C3_WATCHDOG is not set -# CONFIG_SC1200_WDT is not set -CONFIG_SCSI=y -CONFIG_SCSI_COMMON=y -CONFIG_SCSI_SPI_ATTRS=y -# CONFIG_SENSORS_ASUS_EC is not set -CONFIG_SENSORS_FAM15H_POWER=y -CONFIG_SENSORS_K10TEMP=y -CONFIG_SERIAL_8250_PCI=y -CONFIG_SERIAL_8250_PNP=y -# CONFIG_SERIAL_LANTIQ is not set -CONFIG_SERIAL_MCTRL_GPIO=y -CONFIG_SERIO=y -CONFIG_SERIO_I8042=y -CONFIG_SERIO_LIBPS2=y -CONFIG_SERIO_SERPORT=y -CONFIG_SG_POOL=y -# CONFIG_SIEMENS_SIMATIC_IPC is not set -CONFIG_SKB_EXTENSIONS=y -# CONFIG_SMSC37B787_WDT is not set -# CONFIG_SMSC_SCH311X_WDT is not set -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_SPECULATION_MITIGATIONS=y -CONFIG_SRCU=y -CONFIG_STACKTRACE=y -# CONFIG_STATIC_CALL_SELFTEST is not set -# CONFIG_STRICT_SIGALTSTACK_SIZE is not set -CONFIG_SWIOTLB=y -CONFIG_SYNC_FILE=y -CONFIG_SYSCTL_EXCEPTION_TRACE=y -# CONFIG_SYSFB_SIMPLEFB is not set -# CONFIG_SYSTEM76_ACPI is not set -# CONFIG_TELCLOCK is not set -# CONFIG_TEST_FPU is not set -CONFIG_THERMAL=y -CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y -CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0 -CONFIG_THERMAL_GOV_STEP_WISE=y -CONFIG_THREAD_INFO_IN_TASK=y -CONFIG_TICK_CPU_ACCOUNTING=y -# CONFIG_TOSHIBA_BT_RFKILL is not set -# CONFIG_TQMX86_WDT is not set -CONFIG_TRACEPOINTS=y -CONFIG_TRACE_CLOCK=y -CONFIG_TRACE_IRQFLAGS_NMI_SUPPORT=y -CONFIG_TRACING=y -CONFIG_TREE_RCU=y -CONFIG_TREE_SRCU=y -CONFIG_UNINLINE_SPIN_UNLOCK=y -CONFIG_UNWINDER_FRAME_POINTER=y -# CONFIG_UNWINDER_GUESS is not set -# CONFIG_UNWINDER_ORC is not set -CONFIG_UP_LATE_INIT=y -CONFIG_USB=y -CONFIG_USB_COMMON=y -CONFIG_USB_EHCI_HCD=y -# CONFIG_USB_EHCI_HCD_PLATFORM is not set -CONFIG_USB_EHCI_PCI=y -CONFIG_USB_HID=y -CONFIG_USB_HIDDEV=y -CONFIG_USB_OHCI_HCD=y -CONFIG_USB_OHCI_HCD_PCI=y -# CONFIG_USB_OHCI_HCD_PLATFORM is not set -CONFIG_USB_PCI=y -CONFIG_USB_SUPPORT=y -CONFIG_USB_UHCI_HCD=y -CONFIG_USB_XHCI_HCD=y -CONFIG_USB_XHCI_PCI=y -# CONFIG_USB_XHCI_PLATFORM is not set -# CONFIG_USER_NS is not set -CONFIG_USER_STACKTRACE_SUPPORT=y -CONFIG_VGA_CONSOLE=y -# CONFIG_VIA_WDT is not set -# CONFIG_VMD is not set -CONFIG_VM_EVENT_COUNTERS=y -CONFIG_VT=y -CONFIG_VT_CONSOLE=y -CONFIG_VT_HW_CONSOLE_BINDING=y -# CONFIG_WAFER_WDT is not set -# CONFIG_WINMATE_FM07_KEYS is not set -# CONFIG_WIRELESS_HOTKEY is not set -CONFIG_X86=y -CONFIG_X86_5LEVEL=y -CONFIG_X86_64=y -CONFIG_X86_ACPI_CPUFREQ=y -CONFIG_X86_ACPI_CPUFREQ_CPB=y -CONFIG_X86_AMD_FREQ_SENSITIVITY=y -CONFIG_X86_AMD_PLATFORM_DEVICE=y -CONFIG_X86_AMD_PSTATE=y -CONFIG_X86_AMD_PSTATE_DEFAULT_MODE=3 -# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set -CONFIG_X86_CMOV=y -CONFIG_X86_CMPXCHG64=y -# CONFIG_X86_CPA_STATISTICS is not set -# CONFIG_X86_CPUID is not set -# CONFIG_X86_CPU_RESCTRL is not set -CONFIG_X86_DEBUGCTLMSR=y -# CONFIG_X86_DEBUG_FPU is not set -# CONFIG_X86_DECODER_SELFTEST is not set -CONFIG_X86_DIRECT_GBPAGES=y -# CONFIG_X86_EXTENDED_PLATFORM is not set -CONFIG_X86_FEATURE_NAMES=y -# CONFIG_X86_INTEL_LPSS is not set -CONFIG_X86_INTEL_MEMORY_PROTECTION_KEYS=y -# CONFIG_X86_INTEL_PSTATE is not set -# CONFIG_X86_INTEL_TSX_MODE_AUTO is not set -CONFIG_X86_INTEL_TSX_MODE_OFF=y -# CONFIG_X86_INTEL_TSX_MODE_ON is not set -CONFIG_X86_INTERNODE_CACHE_SHIFT=6 -CONFIG_X86_IOPL_IOPERM=y -CONFIG_X86_IO_APIC=y -# CONFIG_X86_KERNEL_IBT is not set -CONFIG_X86_L1_CACHE_SHIFT=6 -CONFIG_X86_LOCAL_APIC=y -CONFIG_X86_MCE=y -# CONFIG_X86_MCELOG_LEGACY is not set -CONFIG_X86_MCE_AMD=y -# CONFIG_X86_MCE_INJECT is not set -CONFIG_X86_MCE_INTEL=y -CONFIG_X86_MCE_THRESHOLD=y -CONFIG_X86_MINIMUM_CPU_FAMILY=64 -CONFIG_X86_MPPARSE=y -CONFIG_X86_MSR=y -# CONFIG_X86_P4_CLOCKMOD is not set -CONFIG_X86_PAT=y -# CONFIG_X86_PCC_CPUFREQ is not set -CONFIG_X86_PLATFORM_DEVICES=y -# CONFIG_X86_PLATFORM_DRIVERS_DELL is not set -# CONFIG_X86_PMEM_LEGACY is not set -CONFIG_X86_PM_TIMER=y -# CONFIG_X86_POWERNOW_K8 is not set -CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS=y -# CONFIG_X86_SPEEDSTEP_CENTRINO is not set -CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y -CONFIG_X86_THERMAL_VECTOR=y -CONFIG_X86_TSC=y -CONFIG_X86_UMIP=y -# CONFIG_X86_USER_SHADOW_STACK is not set -CONFIG_X86_VERBOSE_BOOTUP=y -CONFIG_X86_VMX_FEATURE_NAMES=y -CONFIG_X86_VSYSCALL_EMULATION=y -# CONFIG_X86_X2APIC is not set -# CONFIG_X86_X32_ABI is not set -# CONFIG_XEN_DOM0 is not set -CONFIG_XZ_DEC_BCJ=y -CONFIG_XZ_DEC_X86=y -CONFIG_ZLIB_INFLATE=y -CONFIG_ZONE_DMA32=y diff --git a/6.11/target/linux/x86/generic/config-6.11 b/6.11/target/linux/x86/generic/config-6.11 deleted file mode 100644 index 2556c200..00000000 --- a/6.11/target/linux/x86/generic/config-6.11 +++ /dev/null @@ -1,531 +0,0 @@ -# CONFIG_3C515 is not set -CONFIG_ACPI=y -CONFIG_ACPI_AC=y -CONFIG_ACPI_BATTERY=y -# CONFIG_ACPI_BGRT is not set -CONFIG_ACPI_BUTTON=y -# CONFIG_ACPI_CMPC is not set -CONFIG_ACPI_CONTAINER=y -CONFIG_ACPI_CPU_FREQ_PSS=y -# CONFIG_ACPI_DEBUG is not set -# CONFIG_ACPI_DEBUGGER is not set -# CONFIG_ACPI_DOCK is not set -# CONFIG_ACPI_DPTF is not set -# CONFIG_ACPI_EC_DEBUGFS is not set -# CONFIG_ACPI_FAN is not set -CONFIG_ACPI_HOTPLUG_CPU=y -CONFIG_ACPI_HOTPLUG_IOAPIC=y -# CONFIG_ACPI_I2C_OPREGION is not set -CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y -# CONFIG_ACPI_PCI_SLOT is not set -CONFIG_ACPI_PROCESSOR=y -# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set -CONFIG_ACPI_PROCESSOR_CSTATE=y -CONFIG_ACPI_PROCESSOR_IDLE=y -CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y -# CONFIG_ACPI_SBS is not set -CONFIG_ACPI_SPCR_TABLE=y -CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y -CONFIG_ACPI_TAD=y -CONFIG_ACPI_THERMAL=y -CONFIG_ACPI_VIDEO=y -# CONFIG_ACPI_WMI is not set -CONFIG_AGP=y -# CONFIG_AGP_ALI is not set -# CONFIG_AGP_AMD is not set -# CONFIG_AGP_AMD64 is not set -# CONFIG_AGP_ATI is not set -# CONFIG_AGP_EFFICEON is not set -CONFIG_AGP_INTEL=y -# CONFIG_AGP_NVIDIA is not set -# CONFIG_AGP_SIS is not set -# CONFIG_AGP_SWORKS is not set -# CONFIG_AGP_VIA is not set -# CONFIG_ALIX is not set -# CONFIG_AMD_PMC is not set -# CONFIG_APM is not set -CONFIG_ARCH_CPUIDLE_HALTPOLL=y -CONFIG_ARCH_DMA_ADDR_T_64BIT=y -CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y -CONFIG_ARCH_MMAP_RND_BITS=8 -# CONFIG_ASUS_TF103C_DOCK is not set -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BALLOON_COMPACTION=y -# CONFIG_BARCO_P50_GPIO is not set -CONFIG_BLK_DEV_SR=y -CONFIG_BLK_MQ_VIRTIO=y -CONFIG_BLK_PM=y -# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set -CONFIG_BTT=y -CONFIG_CDROM=y -# CONFIG_COMPAT_VDSO is not set -CONFIG_CONNECTOR=y -CONFIG_CPU_FREQ_DEFAULT_GOV_SCHEDUTIL=y -CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y -# CONFIG_CPU_IDLE_GOV_HALTPOLL is not set -CONFIG_CPU_IDLE_GOV_MENU=y -CONFIG_CPU_RMAP=y -# CONFIG_CS89x0_ISA is not set -# CONFIG_DEBUG_HOTPLUG_CPU0 is not set -CONFIG_DMA_ACPI=y -CONFIG_DMA_SHARED_BUFFER=y -CONFIG_DRM=y -CONFIG_DRM_BOCHS=y -CONFIG_DRM_BRIDGE=y -CONFIG_DRM_BUDDY=y -CONFIG_DRM_DP_HELPER=y -CONFIG_DRM_FBDEV_EMULATION=y -CONFIG_DRM_FBDEV_OVERALLOC=100 -CONFIG_DRM_GEM_SHMEM_HELPER=y -# CONFIG_DRM_HYPERV is not set -CONFIG_DRM_I915=y -CONFIG_DRM_I915_CAPTURE_ERROR=y -CONFIG_DRM_I915_COMPRESS_ERROR=y -# CONFIG_DRM_I915_DEBUG is not set -# CONFIG_DRM_I915_DEBUG_GUC is not set -# CONFIG_DRM_I915_DEBUG_MMIO is not set -# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set -# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set -CONFIG_DRM_I915_FENCE_TIMEOUT=10000 -CONFIG_DRM_I915_FORCE_PROBE="" -CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500 -# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set -CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000 -CONFIG_DRM_I915_PREEMPT_TIMEOUT=640 -CONFIG_DRM_I915_PXP=y -# CONFIG_DRM_I915_SELFTEST is not set -CONFIG_DRM_I915_STOP_TIMEOUT=100 -# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set -# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set -CONFIG_DRM_I915_TIMESLICE_DURATION=1 -CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250 -CONFIG_DRM_I915_USERPTR=y -# CONFIG_DRM_I915_WERROR is not set -CONFIG_DRM_KMS_HELPER=y -CONFIG_DRM_MIPI_DSI=y -CONFIG_DRM_NOMODESET=y -CONFIG_DRM_PANEL=y -CONFIG_DRM_PANEL_BRIDGE=y -CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y -# CONFIG_DRM_SIMPLEDRM is not set -# CONFIG_DRM_SSD130X is not set -CONFIG_DRM_TTM=y -CONFIG_DRM_TTM_HELPER=y -CONFIG_DRM_VIRTIO_GPU=y -CONFIG_DRM_VRAM_HELPER=y -CONFIG_EFI=y -CONFIG_EFIVAR_FS=m -# CONFIG_EFI_BOOTLOADER_CONTROL is not set -# CONFIG_EFI_CAPSULE_LOADER is not set -# CONFIG_EFI_CAPSULE_QUIRK_QUARK_CSH is not set -# CONFIG_EFI_CUSTOM_SSDT_OVERLAYS is not set -# CONFIG_EFI_DISABLE_PCI_DMA is not set -CONFIG_EFI_EARLYCON=y -CONFIG_EFI_ESRT=y -# CONFIG_EFI_FAKE_MEMMAP is not set -CONFIG_EFI_GENERIC_STUB_INITRD_CMDLINE_LOADER=y -# CONFIG_EFI_PGT_DUMP is not set -# CONFIG_EFI_RCI2_TABLE is not set -CONFIG_EFI_RUNTIME_MAP=y -CONFIG_EFI_RUNTIME_WRAPPERS=y -CONFIG_EFI_STUB=y -# CONFIG_EFI_TEST is not set -# CONFIG_EFI_VARS is not set -# CONFIG_EL3 is not set -CONFIG_FAILOVER=y -CONFIG_FB=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_IMAGEBLIT=y -CONFIG_FB_CMDLINE=y -CONFIG_FB_DEFERRED_IO=y -CONFIG_FB_EFI=y -CONFIG_FB_HYPERV=y -# CONFIG_FB_I810 is not set -CONFIG_FB_SIMPLE=y -CONFIG_FB_SYS_COPYAREA=y -CONFIG_FB_SYS_FILLRECT=y -CONFIG_FB_SYS_FOPS=y -CONFIG_FB_SYS_IMAGEBLIT=y -# CONFIG_FB_VESA is not set -CONFIG_FONT_8x16=y -CONFIG_FONT_8x8=y -CONFIG_FONT_SUPPORT=y -CONFIG_FRAMEBUFFER_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y -CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION=y -# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set -CONFIG_FREEZER=y -CONFIG_FW_CACHE=y -CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y -CONFIG_GENERIC_IRQ_MIGRATION=y -CONFIG_GENERIC_PENDING_IRQ=y -CONFIG_GENERIC_PINCONF=y -# CONFIG_GEOS is not set -CONFIG_GPIOLIB=y -CONFIG_GPIOLIB_IRQCHIP=y -CONFIG_GPIO_ACPI=y -CONFIG_GPIO_CASCADE=y -CONFIG_GPIO_CDEV=y -# CONFIG_GPIO_SIM is not set -CONFIG_GPIO_VIRTIO=y -CONFIG_GUEST_PERF_EVENTS=y -CONFIG_GUP_GET_PTE_LOW_HIGH=y -CONFIG_HALTPOLL_CPUIDLE=y -CONFIG_HDMI=y -CONFIG_HIBERNATE_CALLBACKS=y -CONFIG_HID_BATTERY_STRENGTH=y -CONFIG_HID_GENERIC=y -CONFIG_HID_HYPERV_MOUSE=y -# CONFIG_HIGHMEM4G is not set -CONFIG_HIGHMEM64G=y -# CONFIG_HIGHPTE is not set -CONFIG_HOTPLUG_CPU=y -CONFIG_HOTPLUG_PCI=y -CONFIG_HOTPLUG_PCI_ACPI=y -# CONFIG_HOTPLUG_PCI_ACPI_IBM is not set -# CONFIG_HOTPLUG_PCI_COMPAQ is not set -# CONFIG_HOTPLUG_PCI_CPCI is not set -# CONFIG_HOTPLUG_PCI_IBM is not set -CONFIG_HOTPLUG_PCI_PCIE=y -# CONFIG_HOTPLUG_PCI_SHPC is not set -CONFIG_HOTPLUG_SMT=y -CONFIG_HPET=y -CONFIG_HPET_MMAP=y -# CONFIG_HP_ACCEL is not set -CONFIG_HVC_DRIVER=y -CONFIG_HVC_IRQ=y -CONFIG_HVC_XEN=y -CONFIG_HVC_XEN_FRONTEND=y -CONFIG_HWMON=y -CONFIG_HWMON_VID=y -CONFIG_HW_RANDOM_VIRTIO=y -CONFIG_HYPERV=y -CONFIG_HYPERVISOR_GUEST=y -CONFIG_HYPERV_BALLOON=y -CONFIG_HYPERV_KEYBOARD=y -CONFIG_HYPERV_NET=y -CONFIG_HYPERV_STORAGE=y -# CONFIG_HYPERV_TESTING is not set -CONFIG_HYPERV_TIMER=y -CONFIG_HYPERV_UTILS=y -CONFIG_I2C=y -CONFIG_I2C_ALGOBIT=y -# CONFIG_I2C_AMD_MP2 is not set -CONFIG_I2C_BOARDINFO=y -# CONFIG_I2C_HID_ACPI is not set -# CONFIG_IMA_SECURE_AND_OR_TRUSTED_BOOT is not set -CONFIG_INPUT_MOUSE=y -CONFIG_INPUT_MOUSEDEV=y -CONFIG_INPUT_MOUSEDEV_PSAUX=y -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -CONFIG_INPUT_XEN_KBDDEV_FRONTEND=y -CONFIG_INTEL_GTT=y -CONFIG_INTEL_IDLE=y -# CONFIG_INTEL_IPS is not set -CONFIG_INTEL_MEI=y -# CONFIG_INTEL_MEI_HDCP is not set -CONFIG_INTEL_MEI_ME=y -CONFIG_INTEL_MEI_PXP=y -# CONFIG_INTEL_MEI_WDT is not set -# CONFIG_INTEL_MENLOW is not set -CONFIG_INTEL_PCH_THERMAL=y -# CONFIG_INTEL_SAR_INT1092 is not set -# CONFIG_INTEL_SCU_PLATFORM is not set -CONFIG_INTEL_SOC_DTS_IOSF_CORE=y -CONFIG_INTEL_SOC_DTS_THERMAL=y -CONFIG_INTERVAL_TREE=y -CONFIG_IOSF_MBI=y -# CONFIG_IOSF_MBI_DEBUG is not set -CONFIG_IRQ_BYPASS_MANAGER=y -CONFIG_ISA=y -CONFIG_ISAPNP=y -CONFIG_ISA_BUS_API=y -# CONFIG_ISCSI_IBFT is not set -CONFIG_ISO9660_FS=y -# CONFIG_JOLIET is not set -CONFIG_KCMP=y -CONFIG_KVM=y -CONFIG_KVM_AMD=y -CONFIG_KVM_ASYNC_PF=y -CONFIG_KVM_GENERIC_DIRTYLOG_READ_PROTECT=y -CONFIG_KVM_GUEST=y -CONFIG_KVM_INTEL=y -CONFIG_KVM_MMIO=y -CONFIG_KVM_VFIO=y -# CONFIG_KVM_XEN is not set -CONFIG_KVM_XFER_TO_GUEST_WORK=y -# CONFIG_LANCE is not set -CONFIG_LIBNVDIMM=y -CONFIG_LIVEPATCH=y -CONFIG_LOCK_SPIN_ON_OWNER=y -# CONFIG_M686 is not set -# CONFIG_M486SX is not set -# CONFIG_M486 is not set -# CONFIG_M586 is not set -# CONFIG_M586TSC is not set -# CONFIG_M586MMX is not set -# CONFIG_M686 is not set -# CONFIG_MPENTIUMII is not set -# CONFIG_MPENTIUMIII is not set -# CONFIG_MPENTIUMM is not set -CONFIG_MPENTIUM4=y -# CONFIG_MK6 is not set -# CONFIG_MK7 is not set -# CONFIG_MK8 is not set -# CONFIG_MCRUSOE is not set -# CONFIG_MEFFICEON is not set -# CONFIG_MWINCHIPC6 is not set -# CONFIG_MWINCHIP3D is not set -# CONFIG_MELAN is not set -# CONFIG_MGEODEGX1 is not set -# CONFIG_MGEODE_LX is not set -# CONFIG_MCYRIXIII is not set -# CONFIG_MVIAC3_2 is not set -# CONFIG_MVIAC7 is not set -# CONFIG_MCORE2 is not set -# CONFIG_MATOM is not set -# CONFIG_MDA_CONSOLE is not set -CONFIG_MEMORY_BALLOON=y -CONFIG_MEMREGION=y -CONFIG_MFD_CORE=y -CONFIG_MFD_INTEL_LPSS=y -CONFIG_MFD_INTEL_LPSS_ACPI=y -# CONFIG_MFD_INTEL_PMC_BXT is not set -# CONFIG_MFD_SIMPLE_MFD_I2C is not set -# CONFIG_MIXCOMWD is not set -CONFIG_MMC=y -CONFIG_MMC_BLOCK=y -CONFIG_MMC_CQHCI=y -CONFIG_MMC_RICOH_MMC=y -CONFIG_MMC_SDHCI=y -CONFIG_MMC_SDHCI_IO_ACCESSORS=y -CONFIG_MMC_SDHCI_PCI=y -# CONFIG_MMC_SDHCI_PLTFM is not set -# CONFIG_MMC_WBSD is not set -CONFIG_MMU_NOTIFIER=y -# CONFIG_MOUSE_BCM5974 is not set -# CONFIG_MOUSE_CYAPA is not set -CONFIG_MOUSE_PS2=y -CONFIG_MOUSE_PS2_ALPS=y -# CONFIG_MOUSE_PS2_BYD is not set -# CONFIG_MOUSE_PS2_CYPRESS is not set -# CONFIG_MOUSE_PS2_ELANTECH is not set -CONFIG_MOUSE_PS2_LIFEBOOK=y -CONFIG_MOUSE_PS2_LOGIPS2PP=y -CONFIG_MOUSE_PS2_SMBUS=y -CONFIG_MOUSE_PS2_SYNAPTICS=y -CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y -# CONFIG_MOUSE_PS2_TOUCHKIT is not set -CONFIG_MOUSE_PS2_TRACKPOINT=y -# CONFIG_MOUSE_PS2_VMMOUSE is not set -# CONFIG_MOUSE_SERIAL is not set -# CONFIG_MOUSE_VSXXXAA is not set -CONFIG_MPENTIUM4=y -CONFIG_MULTIPLEXER=y -CONFIG_MUTEX_SPIN_ON_OWNER=y -# CONFIG_MUX_ADG792A is not set -# CONFIG_MUX_GPIO is not set -CONFIG_ND_CLAIM=y -CONFIG_NEED_DMA_MAP_STATE=y -# CONFIG_NET5501 is not set -CONFIG_NET_FAILOVER=y -CONFIG_NET_FLOW_LIMIT=y -# CONFIG_NOHIGHMEM is not set -CONFIG_NO_HZ=y -CONFIG_NR_CPUS=4 -CONFIG_NR_CPUS_DEFAULT=8 -CONFIG_NR_CPUS_RANGE_BEGIN=2 -CONFIG_NR_CPUS_RANGE_END=8 -# CONFIG_NSC_GPIO is not set -CONFIG_PADATA=y -CONFIG_PAGE_REPORTING=y -CONFIG_PAGE_TABLE_ISOLATION=y -CONFIG_PARAVIRT=y -CONFIG_PARAVIRT_CLOCK=y -# CONFIG_PARAVIRT_DEBUG is not set -CONFIG_PARAVIRT_SPINLOCKS=y -CONFIG_PATA_AMD=y -CONFIG_PATA_ATIIXP=y -CONFIG_PATA_MPIIX=y -CONFIG_PATA_OLDPIIX=y -CONFIG_PATA_PLATFORM=y -CONFIG_PATA_SC1200=y -CONFIG_PATA_TIMINGS=y -CONFIG_PATA_VIA=y -# CONFIG_PC8736x_GPIO is not set -# CONFIG_PCENGINES_APU2 is not set -CONFIG_PCIEAER=y -CONFIG_PCIEPORTBUS=y -CONFIG_PCIE_PME=y -# CONFIG_PCI_GOBIOS is not set -# CONFIG_PCI_GOMMCONFIG is not set -# CONFIG_PCI_GODIRECT is not set -CONFIG_PCI_GOANY=y -CONFIG_PCI_MMCONFIG=y -CONFIG_PCI_XEN=y -# CONFIG_PCWATCHDOG is not set -CONFIG_PGTABLE_LEVELS=3 -CONFIG_PHYS_ADDR_T_64BIT=y -CONFIG_PINCTRL=y -# CONFIG_PINCTRL_ALDERLAKE is not set -CONFIG_PINCTRL_BAYTRAIL=y -CONFIG_PINCTRL_BROXTON=y -CONFIG_PINCTRL_CANNONLAKE=y -CONFIG_PINCTRL_CHERRYVIEW=y -CONFIG_PINCTRL_DENVERTON=y -# CONFIG_PINCTRL_ELKHARTLAKE is not set -# CONFIG_PINCTRL_EMMITSBURG is not set -CONFIG_PINCTRL_GEMINILAKE=y -CONFIG_PINCTRL_INTEL=y -# CONFIG_PINCTRL_JASPERLAKE is not set -# CONFIG_PINCTRL_LAKEFIELD is not set -# CONFIG_PINCTRL_LEWISBURG is not set -# CONFIG_PINCTRL_LYNXPOINT is not set -CONFIG_PINCTRL_SUNRISEPOINT=y -# CONFIG_PINCTRL_TIGERLAKE is not set -CONFIG_PM=y -# CONFIG_PMIC_OPREGION is not set -CONFIG_PM_CLK=y -CONFIG_PM_SLEEP=y -CONFIG_PM_SLEEP_SMP=y -CONFIG_PNP=y -CONFIG_PNPACPI=y -# CONFIG_PNPBIOS is not set -CONFIG_PNP_DEBUG_MESSAGES=y -CONFIG_PREEMPT_NOTIFIERS=y -CONFIG_PROC_EVENTS=y -CONFIG_PVH=y -CONFIG_QUEUED_RWLOCKS=y -CONFIG_QUEUED_SPINLOCKS=y -CONFIG_RAS=y -CONFIG_RELAY=y -CONFIG_RELOCATABLE=y -CONFIG_RESET_ATTACK_MITIGATION=y -CONFIG_RFS_ACCEL=y -CONFIG_RPS=y -CONFIG_RTC_I2C_AND_SPI=y -CONFIG_RWSEM_SPIN_ON_OWNER=y -# CONFIG_SAMSUNG_Q10 is not set -CONFIG_SATA_AHCI=y -CONFIG_SATA_VIA=y -# CONFIG_SBC7240_WDT is not set -# CONFIG_SBC8360_WDT is not set -# CONFIG_SCHED_CORE is not set -CONFIG_SCHED_INFO=y -CONFIG_SCHED_SMT=y -# CONFIG_SCSI_FDOMAIN_ISA is not set -CONFIG_SCSI_VIRTIO=y -# CONFIG_SCx200 is not set -# CONFIG_SENSORS_ASUS_EC is not set -CONFIG_SENSORS_CORETEMP=y -CONFIG_SENSORS_FAM15H_POWER=y -CONFIG_SENSORS_I5500=y -CONFIG_SENSORS_K10TEMP=y -CONFIG_SENSORS_K8TEMP=y -# CONFIG_SENSORS_SY7636A is not set -# CONFIG_SENSORS_TMP464 is not set -CONFIG_SENSORS_VIA_CPUTEMP=y -CONFIG_SERIAL_8250_PNP=y -CONFIG_SERIAL_MCTRL_GPIO=y -CONFIG_SMP=y -CONFIG_SOCK_RX_QUEUE_MAPPING=y -CONFIG_SWIOTLB=y -CONFIG_SYNC_FILE=y -# CONFIG_SYSTEM76_ACPI is not set -CONFIG_SYS_HYPERVISOR=y -CONFIG_TASKSTATS=y -CONFIG_TASK_DELAY_ACCT=y -CONFIG_THERMAL_GOV_USER_SPACE=y -CONFIG_THERMAL_HWMON=y -CONFIG_THERMAL_WRITABLE_TRIPS=y -# CONFIG_TOSHIBA is not set -# CONFIG_TOSHIBA_BT_RFKILL is not set -# CONFIG_UCLAMP_TASK is not set -CONFIG_UCS2_STRING=y -CONFIG_USB_STORAGE=y -# CONFIG_USB_XEN_HCD is not set -CONFIG_USER_RETURN_NOTIFIER=y -CONFIG_VHOST=y -CONFIG_VHOST_IOTLB=y -CONFIG_VHOST_NET=y -CONFIG_VIRTIO=y -CONFIG_VIRTIO_BALLOON=y -CONFIG_VIRTIO_BLK=y -CONFIG_VIRTIO_CONSOLE=y -CONFIG_VIRTIO_DMA_SHARED_BUFFER=y -CONFIG_VIRTIO_INPUT=y -CONFIG_VIRTIO_MMIO=y -CONFIG_VIRTIO_NET=y -CONFIG_VIRTIO_PCI=y -CONFIG_VIRTIO_PCI_LEGACY=y -CONFIG_VIRTIO_PCI_LIB=y -CONFIG_VIRTIO_PCI_LIB_LEGACY=y -# CONFIG_VIRTIO_PMEM is not set -CONFIG_VIRTUALIZATION=y -CONFIG_VMAP_PFN=y -CONFIG_VT_CONSOLE_SLEEP=y -CONFIG_WATCHDOG_CORE=y -# CONFIG_WDT is not set -# CONFIG_WIRELESS_HOTKEY is not set -# CONFIG_X86_32_IRIS is not set -CONFIG_X86_32_SMP=y -CONFIG_X86_ACPI_CPUFREQ=y -# CONFIG_X86_ACPI_CPUFREQ_CPB is not set -CONFIG_X86_AMD_FREQ_SENSITIVITY=y -# CONFIG_X86_AMD_PLATFORM_DEVICE is not set -CONFIG_X86_AMD_PSTATE=y -# CONFIG_X86_ANCIENT_MCE is not set -# CONFIG_X86_BIGSMP is not set -# CONFIG_X86_CPUFREQ_NFORCE2 is not set -CONFIG_X86_CPUID=y -# CONFIG_X86_E_POWERSAVER is not set -# CONFIG_X86_GENERIC is not set -# CONFIG_X86_GX_SUSPMOD is not set -CONFIG_X86_HV_CALLBACK_VECTOR=y -CONFIG_X86_INTEL_LPSS=y -CONFIG_X86_INTEL_PSTATE=y -CONFIG_X86_INTERNODE_CACHE_SHIFT=7 -CONFIG_X86_L1_CACHE_SHIFT=7 -# CONFIG_X86_LEGACY_VM86 is not set -# CONFIG_X86_LONGHAUL is not set -# CONFIG_X86_LONGRUN is not set -CONFIG_X86_NEED_RELOCS=y -CONFIG_X86_PAE=y -# CONFIG_X86_PCC_CPUFREQ is not set -CONFIG_X86_PKG_TEMP_THERMAL=y -# CONFIG_X86_PMEM_LEGACY is not set -CONFIG_X86_PM_TIMER=y -# CONFIG_X86_POWERNOW_K6 is not set -# CONFIG_X86_POWERNOW_K7 is not set -# CONFIG_X86_POWERNOW_K8 is not set -# CONFIG_X86_REBOOTFIXUPS is not set -# CONFIG_X86_SPEEDSTEP_ICH is not set -# CONFIG_X86_SPEEDSTEP_SMI is not set -CONFIG_XEN=y -CONFIG_XENFS=y -CONFIG_XEN_ACPI=y -CONFIG_XEN_AUTO_XLATE=y -# CONFIG_XEN_BACKEND is not set -CONFIG_XEN_BALLOON=y -CONFIG_XEN_BLKDEV_FRONTEND=y -CONFIG_XEN_COMPAT_XENFS=y -CONFIG_XEN_DEBUG_FS=y -CONFIG_XEN_DEV_EVTCHN=y -CONFIG_XEN_FBDEV_FRONTEND=y -CONFIG_XEN_GNTDEV=y -CONFIG_XEN_GRANT_DEV_ALLOC=y -CONFIG_XEN_NETDEV_FRONTEND=y -CONFIG_XEN_PRIVCMD=y -CONFIG_XEN_PVH=y -CONFIG_XEN_PVHVM=y -CONFIG_XEN_PVHVM_GUEST=y -CONFIG_XEN_PVHVM_SMP=y -CONFIG_XEN_SAVE_RESTORE=y -CONFIG_XEN_SCSI_FRONTEND=y -CONFIG_XEN_SYS_HYPERVISOR=y -CONFIG_XEN_WDT=y -CONFIG_XEN_XENBUS_FRONTEND=y -CONFIG_XPS=y -CONFIG_ZLIB_DEFLATE=y diff --git a/6.11/target/linux/x86/geode/config-6.11 b/6.11/target/linux/x86/geode/config-6.11 deleted file mode 100644 index 465fd617..00000000 --- a/6.11/target/linux/x86/geode/config-6.11 +++ /dev/null @@ -1,150 +0,0 @@ -# CONFIG_3C515 is not set -CONFIG_8139CP=y -CONFIG_8139TOO=y -CONFIG_8139TOO_8129=y -CONFIG_8139TOO_PIO=y -# CONFIG_8139TOO_TUNE_TWISTER is not set -# CONFIG_8139_OLD_RX_RESET is not set -CONFIG_ACPI=y -CONFIG_ACPI_AC=y -# CONFIG_ACPI_BATTERY is not set -# CONFIG_ACPI_CMPC is not set -# CONFIG_ACPI_CONTAINER is not set -CONFIG_ACPI_CPU_FREQ_PSS=y -# CONFIG_ACPI_DEBUG is not set -# CONFIG_ACPI_DEBUGGER is not set -# CONFIG_ACPI_DOCK is not set -# CONFIG_ACPI_DPTF is not set -# CONFIG_ACPI_EC_DEBUGFS is not set -CONFIG_ACPI_FAN=y -CONFIG_ACPI_HOTPLUG_IOAPIC=y -CONFIG_ACPI_I2C_OPREGION=y -CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y -# CONFIG_ACPI_PCI_SLOT is not set -CONFIG_ACPI_PROCESSOR=y -# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set -CONFIG_ACPI_PROCESSOR_CSTATE=y -CONFIG_ACPI_PROCESSOR_IDLE=y -CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y -# CONFIG_ACPI_SBS is not set -CONFIG_ACPI_SPCR_TABLE=y -CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y -CONFIG_ACPI_THERMAL=y -# CONFIG_ACPI_TINY_POWER_BUTTON is not set -# CONFIG_ACPI_WMI is not set -CONFIG_ALIX=y -# CONFIG_AMD_PMC is not set -CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y -# CONFIG_ASUS_TF103C_DOCK is not set -# CONFIG_ATA_PIIX is not set -# CONFIG_BARCO_P50_GPIO is not set -CONFIG_CS5535_CLOCK_EVENT_SRC=y -CONFIG_CS5535_MFGPT=y -CONFIG_CS5535_MFGPT_DEFAULT_IRQ=7 -# CONFIG_CS89x0_ISA is not set -CONFIG_DMA_ACPI=y -# CONFIG_EL3 is not set -CONFIG_GEODE_WDT=y -CONFIG_GEOS=y -CONFIG_GPIOLIB=y -CONFIG_GPIO_ACPI=y -# CONFIG_GPIO_CASCADE is not set -CONFIG_GPIO_CDEV=y -CONFIG_GPIO_CS5535=y -# CONFIG_GPIO_SIM is not set -# CONFIG_HPET is not set -# CONFIG_HP_ACCEL is not set -CONFIG_HWMON=y -CONFIG_I2C=y -CONFIG_I2C_ALGOBIT=y -CONFIG_I2C_ALGOPCA=y -CONFIG_I2C_ALGOPCF=y -# CONFIG_I2C_AMD_MP2 is not set -CONFIG_I2C_BOARDINFO=y -# CONFIG_I2C_HID_ACPI is not set -# CONFIG_INTEL_IPS is not set -# CONFIG_INTEL_MENLOW is not set -# CONFIG_INTEL_SAR_INT1092 is not set -# CONFIG_INTEL_SCU_PLATFORM is not set -# CONFIG_INTEL_SOC_DTS_THERMAL is not set -CONFIG_IOSF_MBI=y -# CONFIG_IOSF_MBI_DEBUG is not set -CONFIG_ISA=y -# CONFIG_ISAPNP is not set -CONFIG_ISA_BUS_API=y -# CONFIG_ISCSI_IBFT is not set -# CONFIG_LANCE is not set -CONFIG_LEDS_GPIO=y -# CONFIG_M686 is not set -# CONFIG_MDA_CONSOLE is not set -CONFIG_MFD_CORE=y -CONFIG_MFD_CS5535=y -# CONFIG_MFD_INTEL_LPSS_ACPI is not set -# CONFIG_MFD_INTEL_PMC_BXT is not set -# CONFIG_MFD_SIMPLE_MFD_I2C is not set -CONFIG_MGEODEGX1=y -# CONFIG_MIXCOMWD is not set -CONFIG_NATSEMI=y -CONFIG_NET5501=y -CONFIG_NSC_GPIO=y -CONFIG_PATA_CS5520=y -CONFIG_PATA_CS5530=y -CONFIG_PATA_CS5535=y -CONFIG_PATA_CS5536=y -CONFIG_PATA_SC1200=y -CONFIG_PC8736x_GPIO=y -# CONFIG_PCENGINES_APU2 is not set -CONFIG_PCI_MMCONFIG=y -# CONFIG_PCWATCHDOG is not set -CONFIG_PINCTRL=y -# CONFIG_PINCTRL_ALDERLAKE is not set -# CONFIG_PINCTRL_BAYTRAIL is not set -# CONFIG_PINCTRL_BROXTON is not set -# CONFIG_PINCTRL_CANNONLAKE is not set -# CONFIG_PINCTRL_CHERRYVIEW is not set -# CONFIG_PINCTRL_DENVERTON is not set -# CONFIG_PINCTRL_ELKHARTLAKE is not set -# CONFIG_PINCTRL_EMMITSBURG is not set -# CONFIG_PINCTRL_GEMINILAKE is not set -# CONFIG_PINCTRL_JASPERLAKE is not set -# CONFIG_PINCTRL_LAKEFIELD is not set -# CONFIG_PINCTRL_LEWISBURG is not set -# CONFIG_PINCTRL_LYNXPOINT is not set -# CONFIG_PINCTRL_SUNRISEPOINT is not set -# CONFIG_PINCTRL_TIGERLAKE is not set -# CONFIG_PMIC_OPREGION is not set -CONFIG_PNP=y -CONFIG_PNPACPI=y -# CONFIG_PNPBIOS is not set -CONFIG_PNP_DEBUG_MESSAGES=y -CONFIG_RTC_I2C_AND_SPI=y -# CONFIG_SAMSUNG_Q10 is not set -CONFIG_SC1200_WDT=y -# CONFIG_SCSI_FDOMAIN_ISA is not set -CONFIG_SCx200_ACB=y -CONFIG_SCx200_WDT=y -# CONFIG_SENSORS_ASUS_EC is not set -CONFIG_SENSORS_LM90=y -# CONFIG_SENSORS_SY7636A is not set -# CONFIG_SENSORS_TMP464 is not set -CONFIG_SERIAL_8250_PNP=y -CONFIG_SERIAL_MCTRL_GPIO=y -# CONFIG_TOSHIBA_BT_RFKILL is not set -# CONFIG_USB_UHCI_HCD is not set -CONFIG_VIA_RHINE=y -CONFIG_VIA_RHINE_MMIO=y -# CONFIG_WDT is not set -# CONFIG_WIRELESS_HOTKEY is not set -# CONFIG_X86_ACPI_CPUFREQ is not set -CONFIG_X86_ALIGNMENT_16=y -# CONFIG_X86_AMD_PLATFORM_DEVICE is not set -CONFIG_X86_AMD_PSTATE=y -CONFIG_X86_CPUID=y -# CONFIG_X86_E_POWERSAVER is not set -CONFIG_X86_INTEL_LPSS=y -# CONFIG_X86_LONGHAUL is not set -# CONFIG_X86_MCE is not set -CONFIG_X86_MINIMUM_CPU_FAMILY=5 -# CONFIG_X86_PCC_CPUFREQ is not set -CONFIG_X86_PM_TIMER=y -CONFIG_X86_REBOOTFIXUPS=y diff --git a/6.11/target/linux/x86/legacy/config-6.11 b/6.11/target/linux/x86/legacy/config-6.11 deleted file mode 100644 index 886cb83c..00000000 --- a/6.11/target/linux/x86/legacy/config-6.11 +++ /dev/null @@ -1,284 +0,0 @@ -# CONFIG_3C515 is not set -CONFIG_ACPI=y -CONFIG_ACPI_AC=y -CONFIG_ACPI_BATTERY=y -CONFIG_ACPI_BUTTON=y -# CONFIG_ACPI_CMPC is not set -# CONFIG_ACPI_CONTAINER is not set -CONFIG_ACPI_CPU_FREQ_PSS=y -# CONFIG_ACPI_DEBUG is not set -# CONFIG_ACPI_DEBUGGER is not set -# CONFIG_ACPI_DOCK is not set -# CONFIG_ACPI_DPTF is not set -# CONFIG_ACPI_EC_DEBUGFS is not set -# CONFIG_ACPI_FAN is not set -CONFIG_ACPI_HOTPLUG_IOAPIC=y -# CONFIG_ACPI_I2C_OPREGION is not set -CONFIG_ACPI_LEGACY_TABLES_LOOKUP=y -# CONFIG_ACPI_PCI_SLOT is not set -CONFIG_ACPI_PROCESSOR=y -# CONFIG_ACPI_PROCESSOR_AGGREGATOR is not set -CONFIG_ACPI_PROCESSOR_CSTATE=y -CONFIG_ACPI_PROCESSOR_IDLE=y -CONFIG_ACPI_REV_OVERRIDE_POSSIBLE=y -# CONFIG_ACPI_SBS is not set -CONFIG_ACPI_SPCR_TABLE=y -CONFIG_ACPI_SYSTEM_POWER_STATES_SUPPORT=y -CONFIG_ACPI_THERMAL=y -CONFIG_ACPI_VIDEO=y -# CONFIG_ACPI_WMI is not set -CONFIG_AGP=y -# CONFIG_AGP_ALI is not set -# CONFIG_AGP_AMD is not set -# CONFIG_AGP_AMD64 is not set -# CONFIG_AGP_ATI is not set -# CONFIG_AGP_EFFICEON is not set -CONFIG_AGP_INTEL=y -# CONFIG_AGP_NVIDIA is not set -# CONFIG_AGP_SIS is not set -# CONFIG_AGP_SWORKS is not set -# CONFIG_AGP_VIA is not set -# CONFIG_ALIX is not set -# CONFIG_AMD_PMC is not set -CONFIG_ARCH_MIGHT_HAVE_ACPI_PDC=y -ARCH_MMAP_RND_BIT=8 -CONFIG_BACKLIGHT_CLASS_DEVICE=y -CONFIG_BLK_DEV_SR=y -CONFIG_CDROM=y -# CONFIG_COMPAT_VDSO is not set -CONFIG_CPU_IDLE_GOV_MENU=y -# CONFIG_CS89x0_ISA is not set -CONFIG_DMA_ACPI=y -CONFIG_DMA_SHARED_BUFFER=y -CONFIG_DRM=y -CONFIG_DRM_AMDGPU=y -# CONFIG_DRM_AMD_DC is not set -CONFIG_DRM_BOCHS=y -CONFIG_DRM_BRIDGE=y -CONFIG_DRM_BUDDY=y -CONFIG_DRM_DP_HELPER=y -CONFIG_DRM_FBDEV_EMULATION=y -CONFIG_DRM_FBDEV_OVERALLOC=100 -CONFIG_DRM_I915=y -CONFIG_DRM_I915_CAPTURE_ERROR=y -CONFIG_DRM_I915_COMPRESS_ERROR=y -# CONFIG_DRM_I915_DEBUG is not set -# CONFIG_DRM_I915_DEBUG_GUC is not set -# CONFIG_DRM_I915_DEBUG_MMIO is not set -# CONFIG_DRM_I915_DEBUG_RUNTIME_PM is not set -# CONFIG_DRM_I915_DEBUG_VBLANK_EVADE is not set -CONFIG_DRM_I915_FENCE_TIMEOUT=10000 -CONFIG_DRM_I915_FORCE_PROBE="" -CONFIG_DRM_I915_HEARTBEAT_INTERVAL=2500 -# CONFIG_DRM_I915_LOW_LEVEL_TRACEPOINTS is not set -CONFIG_DRM_I915_MAX_REQUEST_BUSYWAIT=8000 -CONFIG_DRM_I915_PREEMPT_TIMEOUT=640 -# CONFIG_DRM_I915_SELFTEST is not set -CONFIG_DRM_I915_STOP_TIMEOUT=100 -# CONFIG_DRM_I915_SW_FENCE_CHECK_DAG is not set -# CONFIG_DRM_I915_SW_FENCE_DEBUG_OBJECTS is not set -CONFIG_DRM_I915_TIMESLICE_DURATION=1 -CONFIG_DRM_I915_USERFAULT_AUTOSUSPEND=250 -CONFIG_DRM_I915_USERPTR=y -# CONFIG_DRM_I915_WERROR is not set -CONFIG_DRM_KMS_HELPER=y -CONFIG_DRM_MIPI_DSI=y -CONFIG_DRM_NOMODESET=y -CONFIG_DRM_PANEL=y -CONFIG_DRM_PANEL_BRIDGE=y -CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y -CONFIG_DRM_RADEON=y -CONFIG_DRM_SCHED=y -# CONFIG_DRM_SIMPLEDRM is not set -# CONFIG_DRM_SSD130X is not set -CONFIG_DRM_TTM=y -CONFIG_DRM_TTM_HELPER=y -CONFIG_DRM_VRAM_HELPER=y -# CONFIG_EL3 is not set -CONFIG_FB=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_IMAGEBLIT=y -CONFIG_FB_CMDLINE=y -CONFIG_FB_DEFERRED_IO=y -# CONFIG_FB_I810 is not set -CONFIG_FB_SYS_COPYAREA=y -CONFIG_FB_SYS_FILLRECT=y -CONFIG_FB_SYS_FOPS=y -CONFIG_FB_SYS_IMAGEBLIT=y -# CONFIG_FB_VESA is not set -CONFIG_FONT_8x16=y -CONFIG_FONT_8x8=y -CONFIG_FONT_SUPPORT=y -CONFIG_FRAMEBUFFER_CONSOLE=y -CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y -CONFIG_FRAMEBUFFER_CONSOLE_LEGACY_ACCELERATION=y -# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set -# CONFIG_GEOS is not set -CONFIG_HDMI=y -CONFIG_HID_BATTERY_STRENGTH=y -# CONFIG_HIGHMEM4G is not set -# CONFIG_HIGHMEM64G is not set -CONFIG_HPET=y -CONFIG_HPET_MMAP=y -# CONFIG_HP_ACCEL is not set -CONFIG_HWMON=y -CONFIG_I2C=y -CONFIG_I2C_ALGOBIT=y -# CONFIG_I2C_AMD_MP2 is not set -CONFIG_I2C_BOARDINFO=y -# CONFIG_I2C_HID_ACPI is not set -CONFIG_INPUT_MOUSE=y -CONFIG_INPUT_MOUSEDEV=y -CONFIG_INPUT_MOUSEDEV_PSAUX=y -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 -CONFIG_INTEL_GTT=y -CONFIG_INTEL_IDLE=y -# CONFIG_INTEL_IPS is not set -# CONFIG_INTEL_MEI_HDCP is not set -# CONFIG_INTEL_MEI_PXP is not set -# CONFIG_INTEL_MENLOW is not set -# CONFIG_INTEL_SAR_INT1092 is not set -# CONFIG_INTEL_SCU_PLATFORM is not set -# CONFIG_INTEL_SOC_DTS_THERMAL is not set -CONFIG_INTERVAL_TREE=y -CONFIG_IOSF_MBI=y -# CONFIG_IOSF_MBI_DEBUG is not set -CONFIG_ISA=y -CONFIG_ISAPNP=y -CONFIG_ISA_BUS_API=y -# CONFIG_ISCSI_IBFT is not set -CONFIG_ISO9660_FS=y -# CONFIG_JOLIET is not set -CONFIG_KCMP=y -# CONFIG_LANCE is not set -CONFIG_LIVEPATCH=y -CONFIG_M586MMX=y -# CONFIG_M686 is not set -# CONFIG_M486SX is not set -# CONFIG_M486 is not set -# CONFIG_M586 is not set -# CONFIG_M586TSC is not set -# CONFIG_M586MMX is not set -# CONFIG_M686 is not set -# CONFIG_MPENTIUMII is not set -# CONFIG_MPENTIUMIII is not set -# CONFIG_MPENTIUMM is not set -CONFIG_MPENTIUM4=y -# CONFIG_MK6 is not set -# CONFIG_MK7 is not set -# CONFIG_MK8 is not set -# CONFIG_MCRUSOE is not set -# CONFIG_MEFFICEON is not set -# CONFIG_MWINCHIPC6 is not set -# CONFIG_MWINCHIP3D is not set -# CONFIG_MELAN is not set -# CONFIG_MGEODEGX1 is not set -# CONFIG_MGEODE_LX is not set -# CONFIG_MCYRIXIII is not set -# CONFIG_MVIAC3_2 is not set -# CONFIG_MVIAC7 is not set -# CONFIG_MCORE2 is not set -# CONFIG_MATOM is not set -# CONFIG_MDA_CONSOLE is not set -CONFIG_MFD_CORE=y -CONFIG_MFD_INTEL_LPSS=y -CONFIG_MFD_INTEL_LPSS_ACPI=y -# CONFIG_MFD_INTEL_PMC_BXT is not set -# CONFIG_MFD_SIMPLE_MFD_I2C is not set -# CONFIG_MIXCOMWD is not set -CONFIG_MMU_NOTIFIER=y -# CONFIG_MOUSE_BCM5974 is not set -# CONFIG_MOUSE_CYAPA is not set -CONFIG_MOUSE_PS2=y -CONFIG_MOUSE_PS2_ALPS=y -# CONFIG_MOUSE_PS2_BYD is not set -# CONFIG_MOUSE_PS2_CYPRESS is not set -# CONFIG_MOUSE_PS2_ELANTECH is not set -CONFIG_MOUSE_PS2_LIFEBOOK=y -CONFIG_MOUSE_PS2_LOGIPS2PP=y -CONFIG_MOUSE_PS2_SMBUS=y -CONFIG_MOUSE_PS2_SYNAPTICS=y -CONFIG_MOUSE_PS2_SYNAPTICS_SMBUS=y -# CONFIG_MOUSE_PS2_TOUCHKIT is not set -CONFIG_MOUSE_PS2_TRACKPOINT=y -# CONFIG_MOUSE_SERIAL is not set -# CONFIG_MOUSE_VSXXXAA is not set -# CONFIG_NET5501 is not set -CONFIG_NOHIGHMEM=y -CONFIG_NO_HZ=y -# CONFIG_NSC_GPIO is not set -CONFIG_PATA_AMD=y -CONFIG_PATA_ATIIXP=y -CONFIG_PATA_LEGACY=y -CONFIG_PATA_MPIIX=y -CONFIG_PATA_OLDPIIX=y -CONFIG_PATA_PLATFORM=y -CONFIG_PATA_SC1200=y -CONFIG_PATA_SIS=y -CONFIG_PATA_TIMINGS=y -CONFIG_PATA_VIA=y -# CONFIG_PC8736x_GPIO is not set -CONFIG_PCIEAER=y -CONFIG_PCIEPORTBUS=y -# CONFIG_PCI_GOBIOS is not set -# CONFIG_PCI_GOMMCONFIG is not set -# CONFIG_PCI_GODIRECT is not set -CONFIG_PCI_GOANY=y -CONFIG_PCI_MMCONFIG=y -# CONFIG_PCWATCHDOG is not set -# CONFIG_PMIC_OPREGION is not set -CONFIG_PNP=y -CONFIG_PNPACPI=y -# CONFIG_PNPBIOS is not set -CONFIG_PNP_DEBUG_MESSAGES=y -CONFIG_RAS=y -CONFIG_RELAY=y -CONFIG_RTC_I2C_AND_SPI=y -# CONFIG_SAMSUNG_Q10 is not set -CONFIG_SATA_AHCI=y -# CONFIG_SCSI_FDOMAIN_ISA is not set -# CONFIG_SCx200 is not set -# CONFIG_SBC7240_WDT is not set -# CONFIG_SBC8360_WDT is not set -# CONFIG_SENSORS_ASUS_EC is not set -# CONFIG_SENSORS_SY7636A is not set -# CONFIG_SENSORS_TMP464 is not set -CONFIG_SERIAL_8250_PNP=y -CONFIG_SYNC_FILE=y -# CONFIG_SYSTEM76_ACPI is not set -# CONFIG_TOSHIBA is not set -# CONFIG_TOSHIBA_BT_RFKILL is not set -CONFIG_USB_STORAGE=y -CONFIG_VMAP_PFN=y -# CONFIG_WDT is not set -# CONFIG_WIRELESS_HOTKEY is not set -# CONFIG_X86_32_IRIS is not set -CONFIG_X86_ACPI_CPUFREQ=y -# CONFIG_X86_ACPI_CPUFREQ_CPB is not set -CONFIG_X86_ALIGNMENT_16=y -# CONFIG_X86_AMD_FREQ_SENSITIVITY is not set -# CONFIG_X86_AMD_PLATFORM_DEVICE is not set -CONFIG_X86_AMD_PSTATE=y -# CONFIG_X86_ANCIENT_MCE is not set -# CONFIG_X86_CPUFREQ_NFORCE2 is not set -# CONFIG_X86_E_POWERSAVER is not set -CONFIG_X86_F00F_BUG=y -CONFIG_X86_GENERIC=y -# CONFIG_X86_GX_SUSPMOD is not set -# CONFIG_X86_INTEL_LPSS is not set -# CONFIG_X86_LEGACY_VM86 is not set -# CONFIG_X86_LONGHAUL is not set -# CONFIG_X86_LONGRUN is not set -CONFIG_X86_MINIMUM_CPU_FAMILY=5 -# CONFIG_X86_PAE is not set -# CONFIG_X86_PCC_CPUFREQ is not set -CONFIG_X86_PM_TIMER=y -# CONFIG_X86_POWERNOW_K6 is not set -# CONFIG_X86_POWERNOW_K7 is not set -# CONFIG_X86_POWERNOW_K8 is not set -# CONFIG_X86_REBOOTFIXUPS is not set -# CONFIG_X86_SPEEDSTEP_ICH is not set -# CONFIG_X86_SPEEDSTEP_SMI is not set -CONFIG_ZLIB_DEFLATE=y diff --git a/6.11/toolchain/kernel-headers/Makefile b/6.11/toolchain/kernel-headers/Makefile deleted file mode 100644 index c1a8710a..00000000 --- a/6.11/toolchain/kernel-headers/Makefile +++ /dev/null @@ -1,113 +0,0 @@ -# -# Copyright (C) 2006-2009 OpenWrt.org -# -# This is free software, licensed under the GNU General Public License v2. -# See /LICENSE for more information. -# -include $(TOPDIR)/rules.mk - -KERNEL_BUILD_DIR := $(BUILD_DIR_TOOLCHAIN) -BUILD_DIR := $(KERNEL_BUILD_DIR) - -override QUILT:= -override HOST_QUILT:= - -include $(INCLUDE_DIR)/kernel.mk - -PKG_NAME:=linux -PKG_VERSION:=$(LINUX_VERSION) -PKG_SOURCE:=$(LINUX_SOURCE) -ifneq ($(call qstrip,$(CONFIG_KERNEL_GIT_CLONE_URI)),) - PKG_SOURCE_PROTO:=git - PKG_SOURCE_URL:=$(call qstrip,$(CONFIG_KERNEL_GIT_CLONE_URI)) - PKG_SOURCE_VERSION:=$(call qstrip,$(CONFIG_KERNEL_GIT_REF)) - PKG_MIRROR_HASH:=$(call qstrip,$(CONFIG_KERNEL_GIT_MIRROR_HASH)) -ifdef CHECK - include $(INCLUDE_DIR)/kernel-version.mk - PKG_VERSION:=$(LINUX_VERSION) -else - PKG_SOURCE:=$(LINUX_SOURCE) -endif -else - PKG_SOURCE:=$(LINUX_SOURCE) - PKG_SOURCE_URL:=$(LINUX_SITE) -endif -HOST_BUILD_DIR:=$(KERNEL_BUILD_DIR)/linux-$(LINUX_VERSION) -PKG_HASH:=$(LINUX_KERNEL_HASH) -LINUX_DIR := $(HOST_BUILD_DIR) -FILES_DIR := -PATCH_DIR := ./patches$(if $(wildcard ./patches-$(LINUX_VERSION)),-$(LINUX_VERSION)) - -include $(INCLUDE_DIR)/toolchain-build.mk -include $(INCLUDE_DIR)/kernel-defaults.mk - -ifeq ($(strip $(BOARD)),uml) - LINUX_KARCH:=$(subst x86_64,x86,$(subst i386,x86,$(ARCH))) -endif - -HOST_EXTRACFLAGS= - -LINUX_HAS_HEADERS_INSTALL:=y - -HOST_KMAKE := $(MAKE) -C $(HOST_BUILD_DIR) \ - $(KERNEL_MAKE_FLAGS) \ - CC="$(KERNEL_CC)" \ - HOSTCFLAGS="$(HOST_CFLAGS)" - -define Host/Configure/all - mkdir -p $(BUILD_DIR_TOOLCHAIN)/linux-dev - $(HOST_KMAKE) \ - INSTALL_HDR_PATH="$(BUILD_DIR_TOOLCHAIN)/linux-dev/" \ - headers_install -endef - -# XXX: the following is needed to build lzma-loader -ifneq ($(CONFIG_mips)$(CONFIG_mipsel),) - define Host/Configure/lzma - $(CP) \ - $(HOST_BUILD_DIR)/arch/mips/include/asm/asm.h \ - $(HOST_BUILD_DIR)/arch/mips/include/asm/regdef.h \ - $(HOST_BUILD_DIR)/arch/mips/include/asm/asm-eva.h \ - $(HOST_BUILD_DIR)/arch/mips/include/asm/isa-rev.h \ - $(BUILD_DIR_TOOLCHAIN)/linux-dev/include/asm/ - endef -endif - -define Host/Configure/post/mips - $(call Host/Configure/lzma) -endef - -define Host/Configure/post/mipsel - $(call Host/Configure/lzma) -endef - -define Host/Prepare - rm -rf $(BUILD_DIR_TOOLCHAIN)/linux-* - $(call Kernel/Prepare/Default) - rm -f $(BUILD_DIR_TOOLCHAIN)/linux - ln -s linux-$(LINUX_VERSION) $(BUILD_DIR_TOOLCHAIN)/linux - $(SED) 's/@expr length/@-expr length/' $(HOST_BUILD_DIR)/Makefile -endef - -define Host/Configure - env - yes '' | $(HOST_KMAKE) oldconfig - $(call Host/Configure/all) - $(call Host/Configure/post/$(ARCH)) -endef - -define Host/Compile -endef - -define Host/Install - $(CP) $(BUILD_DIR_TOOLCHAIN)/linux-dev/* $(TOOLCHAIN_DIR)/ -endef - -define Host/Clean - rm -rf \ - $(HOST_BUILD_DIR) \ - $(BUILD_DIR_TOOLCHAIN)/linux \ - $(BUILD_DIR_TOOLCHAIN)/linux-dev -endef - -$(eval $(call HostBuild)) 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/