From aeedc86d672ebdd95eb7eaf8b9b444dccd02d7b7 Mon Sep 17 00:00:00 2001 From: Ben Westover Date: Fri, 17 Nov 2023 23:44:06 -0500 Subject: [PATCH] amazon-biscuit: new device (MR 4532) --- device/testing/device-amazon-biscuit/APKBUILD | 36 + .../testing/device-amazon-biscuit/deviceinfo | 32 + .../testing/device-amazon-biscuit/led.start | 5 + device/testing/device-amazon-biscuit/led.stop | 4 + device/testing/linux-amazon-biscuit/APKBUILD | 76 + .../config-amazon-biscuit.armv7 | 4010 +++++++++++++++++ ...cc10-extern_YYLOC_global_declaration.patch | 27 + ...give-up-on-ilog2-const-optimizations.patch | 1 + .../gcc8-fix-put-user.patch | 1 + .../replace-missing-code-from-mainline.patch | 1359 ++++++ .../replace-solaris-style-directive.patch | 46 + .../x509-certificate-list.patch | 24 + 12 files changed, 5621 insertions(+) create mode 100644 device/testing/device-amazon-biscuit/APKBUILD create mode 100644 device/testing/device-amazon-biscuit/deviceinfo create mode 100644 device/testing/device-amazon-biscuit/led.start create mode 100644 device/testing/device-amazon-biscuit/led.stop create mode 100644 device/testing/linux-amazon-biscuit/APKBUILD create mode 100644 device/testing/linux-amazon-biscuit/config-amazon-biscuit.armv7 create mode 100644 device/testing/linux-amazon-biscuit/gcc10-extern_YYLOC_global_declaration.patch create mode 120000 device/testing/linux-amazon-biscuit/gcc7-give-up-on-ilog2-const-optimizations.patch create mode 120000 device/testing/linux-amazon-biscuit/gcc8-fix-put-user.patch create mode 100644 device/testing/linux-amazon-biscuit/replace-missing-code-from-mainline.patch create mode 100644 device/testing/linux-amazon-biscuit/replace-solaris-style-directive.patch create mode 100644 device/testing/linux-amazon-biscuit/x509-certificate-list.patch diff --git a/device/testing/device-amazon-biscuit/APKBUILD b/device/testing/device-amazon-biscuit/APKBUILD new file mode 100644 index 000000000..44462d818 --- /dev/null +++ b/device/testing/device-amazon-biscuit/APKBUILD @@ -0,0 +1,36 @@ +# Reference: +pkgname=device-amazon-biscuit +pkgdesc="Amazon Echo Dot (2nd gen)" +pkgver=0.1 +pkgrel=0 +url="https://postmarketos.org" +license="MIT" +arch="armv7" +options="!check !archcheck" +depends=" + linux-amazon-biscuit + mkbootimg + postmarketos-base +" +makedepends="devicepkg-dev" +source=" + deviceinfo + led.start + led.stop +" + +build() { + devicepkg_build $startdir $pkgname +} + +package() { + devicepkg_package $startdir $pkgname + install -Dm755 "$srcdir"/led.start "$pkgdir"/etc/local.d/led.start + install -Dm755 "$srcdir"/led.stop "$pkgdir"/etc/local.d/led.stop +} + +sha512sums=" +6560b5bed8d350ce57f5acb23008bad82dfec3201987f3429989adf8af2096f34e815fec6704238cf9b780ed9e3bde7f8b040544a73d4fcda723bcf5cd496e48 deviceinfo +a72f042f5afdb4d47d22c46906cee4d84a23584bc719bfec99678251a6e7784fdfb67c284ecafd11721f7c90783a93283957c43ad845a1ff586b0610234523a3 led.start +d10a06899a48a090042047a9b4917604a0d408701f6e15fc559a5f8444d61f91a3b6c201cbdb227ae0f19d1dff3424e40c41e32e2e91f37b9a69f6e0bd67eb30 led.stop +" diff --git a/device/testing/device-amazon-biscuit/deviceinfo b/device/testing/device-amazon-biscuit/deviceinfo new file mode 100644 index 000000000..3ae6af792 --- /dev/null +++ b/device/testing/device-amazon-biscuit/deviceinfo @@ -0,0 +1,32 @@ +# Reference: +# Please use double quotes only. You can source this file in shell +# scripts. + +deviceinfo_format_version="0" +deviceinfo_name="Amazon Echo Dot (2nd gen)" +deviceinfo_manufacturer="Amazon" +deviceinfo_codename="amazon-biscuit" +deviceinfo_year="2016" +deviceinfo_arch="armv7" + +# Device related +deviceinfo_chassis="embedded" +deviceinfo_keyboard="false" +deviceinfo_external_storage="false" +deviceinfo_no_framebuffer="true" + +# Bootloader related +deviceinfo_flash_method="fastboot" +deviceinfo_flash_fastboot_partition_system="userdata" +deviceinfo_kernel_cmdline="bootopt=64S3,32N2,32N2 lowmemorykiller.minfree=1536,2048,4096,8192,16384,16384 lowmemorykiller.adj=0,100,200,300,900,906 rootwait buildvariant=user veritykeyid=id:f3530e18f64d11fc25eb2dd762979f078de990bf" +deviceinfo_generate_bootimg="true" +deviceinfo_bootimg_qcdt="false" +deviceinfo_bootimg_mtk_label_kernel="KERNEL" +deviceinfo_bootimg_dtb_second="false" +deviceinfo_flash_pagesize="2048" +deviceinfo_header_version="0" +deviceinfo_flash_offset_base="0x40000000" +deviceinfo_flash_offset_kernel="0x00008000" +deviceinfo_flash_offset_ramdisk="0x04000000" +deviceinfo_flash_offset_second="0x00f00000" +deviceinfo_flash_offset_tags="0x08000000" diff --git a/device/testing/device-amazon-biscuit/led.start b/device/testing/device-amazon-biscuit/led.start new file mode 100644 index 000000000..aac2cfce0 --- /dev/null +++ b/device/testing/device-amazon-biscuit/led.start @@ -0,0 +1,5 @@ +#!/bin/sh + +# When device is finished booting, stop the default boot animation and replace it with a rainbow +echo 0 > /sys/bus/i2c/devices/0-003f/boot_animation +echo "0000ff0000ff4f00cf4f00cfff0000ff0000af2f00af2f00ffff00ffff0000ff0000ff00" > /sys/bus/i2c/devices/0-003f/frame diff --git a/device/testing/device-amazon-biscuit/led.stop b/device/testing/device-amazon-biscuit/led.stop new file mode 100644 index 000000000..60071945f --- /dev/null +++ b/device/testing/device-amazon-biscuit/led.stop @@ -0,0 +1,4 @@ +#!/bin/sh + +# Run default boot animation again during shutdown +echo 1 > /sys/bus/i2c/devices/0-003f/boot_animation diff --git a/device/testing/linux-amazon-biscuit/APKBUILD b/device/testing/linux-amazon-biscuit/APKBUILD new file mode 100644 index 000000000..3816b74d2 --- /dev/null +++ b/device/testing/linux-amazon-biscuit/APKBUILD @@ -0,0 +1,76 @@ +# Reference: +# Kernel config based on: arch/arm/configs/biscuit_defconfig + +pkgname=linux-amazon-biscuit +pkgver=3.18.19 +pkgrel=0 +pkgdesc="Amazon Echo Dot (2nd gen) kernel fork" +arch="armv7" +_carch="arm" +_flavor="amazon-biscuit" +url="https://kernel.org" +license="GPL-2.0-only" +makedepends=" + bash + bc + bison + devicepkg-dev + findutils + flex + openssl-dev + perl +" + +# Disable kconfig check because Amazon kernel doesn't allow VT or SYSVIPC to be +# built without extensive patching +options=" + !strip + !check + !tracedeps + !pmb:kconfigcheck + pmb:cross-native +" + +# Source +_repository="amazon-biscuit-kernel" +_commit="3923647bdeca8fdaeb943fb31234dbe361668d28" +_config="config-$_flavor.$arch" +source=" + $pkgname-$_commit.tar.gz::https://gitlab.com/echo-pmos/$_repository/-/archive/$_commit/amazon-biscuit-kernel-$_commit.tar.gz + $_config + gcc7-give-up-on-ilog2-const-optimizations.patch + gcc8-fix-put-user.patch + gcc10-extern_YYLOC_global_declaration.patch + replace-missing-code-from-mainline.patch + replace-solaris-style-directive.patch + x509-certificate-list.patch +" +builddir="$srcdir/$_repository-$_commit" +_outdir="out" + +prepare() { + default_prepare + . downstreamkernel_prepare +} + +build() { + unset LDFLAGS + make O="$_outdir" ARCH="$_carch" CC="${CC:-gcc}" \ + KBUILD_BUILD_VERSION="$((pkgrel + 1 ))-postmarketOS" +} + +package() { + downstreamkernel_package "$builddir" "$pkgdir" "$_carch" \ + "$_flavor" "$_outdir" +} + +sha512sums=" +f8b3b837a1e52c6d2018b0bdf05ef92118e78e0566ba6e13a7b1009b634b5cf5b0d0c8b2ad4793eed6003c0f5c788b079b9a9dbf1e403431110d5250e52b2ccf linux-amazon-biscuit-3923647bdeca8fdaeb943fb31234dbe361668d28.tar.gz +479f093a1b63f8e702e6852d7e36e91345223d493bdcf27e32c5810a2cba470f5653aca9a5a2a8cbbe4f944758ac0567883f06050f3593247a7b8487900a1e2b config-amazon-biscuit.armv7 +77eba606a71eafb36c32e9c5fe5e77f5e4746caac292440d9fb720763d766074a964db1c12bc76fe583c5d1a5c864219c59941f5e53adad182dbc70bf2bc14a7 gcc7-give-up-on-ilog2-const-optimizations.patch +197d40a214ada87fcb2dfc0ae4911704b9a93354b75179cd6b4aadbb627a37ec262cf516921c84a8b1806809b70a7b440cdc8310a4a55fca5d2c0baa988e3967 gcc8-fix-put-user.patch +f0a0591e0008fa5465f479677112b81ef3dac88c26e0aa358bb504abdb920d3682613dfc51183130b5a22772ad85b1cc7a1155104b33dbba748d8e074fc2876a gcc10-extern_YYLOC_global_declaration.patch +9ae0f1ca06c6084c0577578721968cd4b154d9cb9fb82af3b30732dd4ca2e857cae58c285d0f529e0b2c827f1cc2a12426698065e2d0aab1b23e2208fee70bc5 replace-missing-code-from-mainline.patch +a4196e0184b3bb1bc8d0cf4fae931dab623bb9cd02732758bb8ac1d0588682960f58d4dba8ccebb1377e853ca5c135d2a700750228d54ac95a33d1cd44533bca replace-solaris-style-directive.patch +756bfc37c903085bec2e016f146cfc795da5495d8b095124a83f9d92931882ca63c5a1c418016dbcd19a18357c1e783dc7547bb115bb186751615ce9268007f2 x509-certificate-list.patch +" diff --git a/device/testing/linux-amazon-biscuit/config-amazon-biscuit.armv7 b/device/testing/linux-amazon-biscuit/config-amazon-biscuit.armv7 new file mode 100644 index 000000000..b1b6a5fa7 --- /dev/null +++ b/device/testing/linux-amazon-biscuit/config-amazon-biscuit.armv7 @@ -0,0 +1,4010 @@ +# +# Automatically generated file; DO NOT EDIT. +# Linux/arm 3.18.19 Kernel Configuration +# +CONFIG_ARM=y +CONFIG_ARM_HAS_SG_CHAIN=y +CONFIG_MIGHT_HAVE_PCI=y +CONFIG_SYS_SUPPORTS_APM_EMULATION=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_GENERIC_BUG=y +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" +CONFIG_IRQ_WORK=y +CONFIG_BUILDTIME_EXTABLE_SORT=y + +# +# General setup +# +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_CROSS_COMPILE="arm-eabi-" +# CONFIG_COMPILE_TEST is not set +CONFIG_LOCALVERSION="" +CONFIG_LOCALVERSION_AUTO=y +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_HAVE_KERNEL_LZ4=y +CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_LZMA is not set +# CONFIG_KERNEL_XZ is not set +# CONFIG_KERNEL_LZO is not set +# CONFIG_KERNEL_LZ4 is not set +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_SWAP=y +# CONFIG_SYSVIPC is not set +# CONFIG_POSIX_MQUEUE is not set +CONFIG_CROSS_MEMORY_ATTACH=y +CONFIG_FHANDLE=y +# CONFIG_USELIB is not set +CONFIG_AUDIT=y +CONFIG_HAVE_ARCH_AUDITSYSCALL=y +CONFIG_AUDITSYSCALL=y +CONFIG_AUDIT_WATCH=y +CONFIG_AUDIT_TREE=y + +# +# IRQ subsystem +# +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_IRQ_DOMAIN=y +CONFIG_IRQ_DOMAIN_HIERARCHY=y +CONFIG_HANDLE_DOMAIN_IRQ=y +CONFIG_IRQ_DOMAIN_DEBUG=y +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_SPARSE_IRQ=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_ARCH_HAS_TICK_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y + +# +# Timers subsystem +# +CONFIG_TICK_ONESHOT=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_HZ_PERIODIC is not set +CONFIG_NO_HZ_IDLE=y +# CONFIG_NO_HZ_FULL is not set +CONFIG_NO_HZ=y +CONFIG_HIGH_RES_TIMERS=y + +# +# CPU/Task time and stats accounting +# +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set +# CONFIG_IRQ_TIME_ACCOUNTING is not set +# CONFIG_BSD_PROCESS_ACCT is not set +# CONFIG_TASKSTATS is not set + +# +# RCU Subsystem +# +CONFIG_TREE_PREEMPT_RCU=y +CONFIG_PREEMPT_RCU=y +# CONFIG_TASKS_RCU is not set +CONFIG_RCU_STALL_COMMON=y +# CONFIG_RCU_USER_QS is not set +CONFIG_RCU_FANOUT=32 +CONFIG_RCU_FANOUT_LEAF=16 +# CONFIG_RCU_FANOUT_EXACT is not set +# CONFIG_RCU_FAST_NO_HZ is not set +# CONFIG_TREE_RCU_TRACE is not set +# CONFIG_RCU_BOOST is not set +# CONFIG_RCU_NOCB_CPU is not set +CONFIG_BUILD_BIN2C=y +CONFIG_IKCONFIG=y +CONFIG_IKCONFIG_PROC=y +CONFIG_LOG_BUF_SHIFT=20 +CONFIG_LOG_CPU_MAX_BUF_SHIFT=12 +CONFIG_GENERIC_SCHED_CLOCK=y +CONFIG_CGROUPS=y +# CONFIG_CGROUP_DEBUG is not set +# CONFIG_CGROUP_FREEZER is not set +# CONFIG_CGROUP_DEVICE is not set +CONFIG_CPUSETS=y +CONFIG_PROC_PID_CPUSET=y +CONFIG_CGROUP_CPUACCT=y +CONFIG_RESOURCE_COUNTERS=y +CONFIG_MEMCG=y +# CONFIG_MEMCG_SWAP is not set +# CONFIG_MEMCG_KMEM is not set +# CONFIG_CGROUP_PERF is not set +CONFIG_CGROUP_SCHED=y +CONFIG_FAIR_GROUP_SCHED=y +CONFIG_CFS_BANDWIDTH=y +CONFIG_RT_GROUP_SCHED=y +# CONFIG_BLK_CGROUP is not set +# CONFIG_CHECKPOINT_RESTORE is not set +# CONFIG_NAMESPACES is not set +# CONFIG_SCHED_AUTOGROUP is not set +# CONFIG_SYSFS_DEPRECATED is not set +# CONFIG_RELAY is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_INITRAMFS_SOURCE="" +CONFIG_RD_GZIP=y +CONFIG_RD_BZIP2=y +CONFIG_RD_LZMA=y +CONFIG_RD_XZ=y +CONFIG_RD_LZO=y +CONFIG_RD_LZ4=y +# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_SYSCTL=y +CONFIG_ANON_INODES=y +CONFIG_HAVE_UID16=y +CONFIG_BPF=y +CONFIG_EXPERT=y +CONFIG_UID16=y +# CONFIG_SGETMASK_SYSCALL is not set +CONFIG_SYSFS_SYSCALL=y +CONFIG_SYSCTL_SYSCALL=y +CONFIG_KALLSYMS=y +CONFIG_KALLSYMS_ALL=y +CONFIG_PRINTK=y +CONFIG_BUG=y +CONFIG_ELF_CORE=y +CONFIG_BASE_FULL=y +CONFIG_FUTEX=y +CONFIG_EPOLL=y +CONFIG_SIGNALFD=y +CONFIG_TIMERFD=y +CONFIG_EVENTFD=y +# CONFIG_BPF_SYSCALL is not set +CONFIG_SHMEM=y +CONFIG_AIO=y +CONFIG_ADVISE_SYSCALLS=y +CONFIG_EMBEDDED=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y + +# +# Kernel Performance Events And Counters +# +CONFIG_PERF_EVENTS=y +# CONFIG_DEBUG_PERF_USE_VMALLOC is not set +CONFIG_VM_EVENT_COUNTERS=y +# CONFIG_SLUB_DEBUG is not set +CONFIG_COMPAT_BRK=y +# CONFIG_SLAB is not set +CONFIG_SLUB=y +# CONFIG_SLOB is not set +CONFIG_SLUB_CPU_PARTIAL=y +CONFIG_SYSTEM_TRUSTED_KEYRING=y +CONFIG_PROFILING=y +CONFIG_TRACEPOINTS=y +# CONFIG_OPROFILE is not set +CONFIG_HAVE_OPROFILE=y +# CONFIG_KPROBES is not set +# CONFIG_JUMP_LABEL is not set +# CONFIG_UPROBES is not set +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_SECCOMP_FILTER=y +CONFIG_HAVE_CC_STACKPROTECTOR=y +# CONFIG_CC_STACKPROTECTOR is not set +CONFIG_CC_STACKPROTECTOR_NONE=y +# CONFIG_CC_STACKPROTECTOR_REGULAR is not set +# CONFIG_CC_STACKPROTECTOR_STRONG is not set +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_MODULES_USE_ELF_REL=y +CONFIG_HAVE_ARCH_MMAP_RND_BITS=y +CONFIG_ARCH_MMAP_RND_BITS_MIN=8 +CONFIG_ARCH_MMAP_RND_BITS_MAX=16 +CONFIG_ARCH_MMAP_RND_BITS=8 +CONFIG_CLONE_BACKWARDS=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_OLD_SIGACTION=y + +# +# GCOV-based kernel profiling +# +# CONFIG_GCOV_KERNEL is not set +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_RT_MUTEXES=y +CONFIG_BASE_SMALL=0 +CONFIG_MODULES=y +# CONFIG_MODULE_FORCE_LOAD is not set +CONFIG_MODULE_UNLOAD=y +# CONFIG_MODULE_FORCE_UNLOAD is not set +# CONFIG_MODVERSIONS is not set +# CONFIG_MODULE_SRCVERSION_ALL is not set +# CONFIG_MODULE_SIG is not set +# CONFIG_MODULE_COMPRESS is not set +CONFIG_STOP_MACHINE=y +CONFIG_BLOCK=y +CONFIG_LBDAF=y +# CONFIG_BLK_DEV_BSG is not set +# CONFIG_BLK_DEV_BSGLIB is not set +# CONFIG_BLK_DEV_INTEGRITY is not set +# CONFIG_BLK_CMDLINE_PARSER is not set + +# +# Partition Types +# +# CONFIG_PARTITION_ADVANCED is not set +CONFIG_MSDOS_PARTITION=y +CONFIG_EFI_PARTITION=y + +# +# IO Schedulers +# +CONFIG_IOSCHED_NOOP=y +CONFIG_IOSCHED_DEADLINE=y +CONFIG_IOSCHED_CFQ=y +# CONFIG_DEFAULT_DEADLINE is not set +CONFIG_DEFAULT_CFQ=y +# CONFIG_DEFAULT_NOOP is not set +CONFIG_DEFAULT_IOSCHED="cfq" +CONFIG_ASN1=y +CONFIG_UNINLINE_SPIN_UNLOCK=y +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +CONFIG_RWSEM_SPIN_ON_OWNER=y +CONFIG_FREEZER=y + +# +# System Type +# +CONFIG_MMU=y +CONFIG_ARCH_MULTIPLATFORM=y +# CONFIG_ARCH_INTEGRATOR is not set +# CONFIG_ARCH_REALVIEW is not set +# CONFIG_ARCH_VERSATILE is not set +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_CLPS711X is not set +# CONFIG_ARCH_GEMINI is not set +# CONFIG_ARCH_EBSA110 is not set +# CONFIG_ARCH_EP93XX is not set +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_NETX 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_DOVE is not set +# CONFIG_ARCH_MV78XX0 is not set +# CONFIG_ARCH_ORION5X is not set +# CONFIG_ARCH_MMP is not set +# CONFIG_ARCH_KS8695 is not set +# CONFIG_ARCH_W90X900 is not set +# CONFIG_ARCH_LPC32XX is not set +# CONFIG_ARCH_PXA is not set +# CONFIG_ARCH_MSM is not set +# CONFIG_ARCH_SHMOBILE_LEGACY is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_S3C24XX is not set +# CONFIG_ARCH_S3C64XX is not set +# CONFIG_ARCH_DAVINCI is not set +# CONFIG_ARCH_OMAP1 is not set +# CONFIG_ARCH_MT6735 is not set +# CONFIG_ARCH_MT6735M is not set +# CONFIG_ARCH_MT6753 is not set +# CONFIG_ARCH_MT6580 is not set +# CONFIG_ARCH_MT6755 is not set + +# +# Multiple platform selection +# + +# +# CPU Core family selection +# +# CONFIG_ARCH_MULTI_V6 is not set +CONFIG_ARCH_MULTI_V7=y +CONFIG_ARCH_MULTI_V6_V7=y +# CONFIG_ARCH_MULTI_CPU_AUTO is not set +# CONFIG_ARCH_VIRT is not set +# CONFIG_ARCH_MVEBU is not set +# CONFIG_ARCH_BCM is not set +# CONFIG_ARCH_BERLIN is not set +# CONFIG_ARCH_HIGHBANK is not set +# CONFIG_ARCH_HISI is not set +# CONFIG_ARCH_KEYSTONE is not set +# CONFIG_ARCH_MESON is not set + +# +# MTK Board Support Package +# +# CONFIG_ARCH_MXC is not set +CONFIG_ARCH_MEDIATEK=y +# CONFIG_MACH_MT2701 is not set +CONFIG_ARCH_MT8163=y + +# +# TI OMAP/AM/DM/DRA Family +# +# CONFIG_ARCH_OMAP3 is not set +# CONFIG_ARCH_OMAP4 is not set +# CONFIG_SOC_OMAP5 is not set +# CONFIG_SOC_AM33XX is not set +# CONFIG_SOC_AM43XX is not set +# CONFIG_SOC_DRA7XX is not set +# CONFIG_ARCH_QCOM is not set +# CONFIG_ARCH_ROCKCHIP is not set +# CONFIG_ARCH_SOCFPGA is not set +# CONFIG_PLAT_SPEAR is not set +# CONFIG_ARCH_STI is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_EXYNOS is not set +# CONFIG_ARCH_SHMOBILE_MULTI is not set +# CONFIG_ARCH_SUNXI is not set +# CONFIG_ARCH_SIRF is not set +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARCH_U8500 is not set +# CONFIG_ARCH_VEXPRESS is not set +# CONFIG_ARCH_WM8850 is not set +# CONFIG_ARCH_ZYNQ is not set + +# +# Processor Type +# +CONFIG_CPU_V7=y +CONFIG_CPU_32v6K=y +CONFIG_CPU_32v7=y +CONFIG_CPU_ABRT_EV7=y +CONFIG_CPU_PABRT_V7=y +CONFIG_CPU_CACHE_V7=y +CONFIG_CPU_CACHE_VIPT=y +CONFIG_CPU_COPY_V6=y +CONFIG_CPU_TLB_V7=y +CONFIG_CPU_HAS_ASID=y +CONFIG_CPU_CP15=y +CONFIG_CPU_CP15_MMU=y + +# +# Processor Features +# +# CONFIG_ARM_LPAE is not set +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +CONFIG_ARM_THUMB=y +# CONFIG_ARM_THUMBEE is not set +CONFIG_ARM_VIRT_EXT=y +CONFIG_SWP_EMULATE=y +# CONFIG_CPU_ICACHE_DISABLE is not set +# CONFIG_CPU_DCACHE_DISABLE is not set +# CONFIG_CPU_BPREDICT_DISABLE is not set +CONFIG_KUSER_HELPERS=y +CONFIG_MIGHT_HAVE_CACHE_L2X0=y +# CONFIG_CACHE_L2X0 is not set +CONFIG_ARM_L1_CACHE_SHIFT_6=y +CONFIG_ARM_L1_CACHE_SHIFT=6 +CONFIG_ARM_DMA_MEM_BUFFERABLE=y +CONFIG_MULTI_IRQ_HANDLER=y +# CONFIG_ARM_ERRATA_430973 is not set +CONFIG_ARM_ERRATA_643719=y +# CONFIG_ARM_ERRATA_720789 is not set +# CONFIG_ARM_ERRATA_754322 is not set +# CONFIG_ARM_ERRATA_754327 is not set +# CONFIG_ARM_ERRATA_764369 is not set +# CONFIG_ARM_ERRATA_775420 is not set +# CONFIG_ARM_ERRATA_798181 is not set +# CONFIG_ARM_ERRATA_773022 is not set +# CONFIG_ARM_ERRATA_836870 is not set + +# +# Bus support +# +CONFIG_ARM_AMBA=y +# CONFIG_PCI is not set +# CONFIG_PCI_SYSCALL is not set +# CONFIG_PCCARD is not set + +# +# Kernel Features +# +CONFIG_HAVE_SMP=y +CONFIG_SMP=y +CONFIG_SMP_ON_UP=y +CONFIG_ARM_CPU_TOPOLOGY=y +CONFIG_SCHED_MC=y +# CONFIG_SCHED_SMT is not set +CONFIG_HAVE_ARM_ARCH_TIMER=y +# CONFIG_MCPM is not set +# CONFIG_BIG_LITTLE is not set +CONFIG_VMSPLIT_3G=y +# CONFIG_VMSPLIT_2G is not set +# CONFIG_VMSPLIT_1G is not set +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_NR_CPUS=4 +CONFIG_HOTPLUG_CPU=y +CONFIG_ARM_PSCI=y +CONFIG_ARCH_NR_GPIO=0 +# CONFIG_PREEMPT_NONE is not set +# CONFIG_PREEMPT_VOLUNTARY is not set +CONFIG_PREEMPT=y +CONFIG_PREEMPT_COUNT=y +CONFIG_HZ_FIXED=0 +# CONFIG_HZ_100 is not set +# CONFIG_HZ_200 is not set +CONFIG_HZ_250=y +# CONFIG_HZ_300 is not set +# CONFIG_HZ_500 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ=250 +CONFIG_SCHED_HRTICK=y +# CONFIG_THUMB2_KERNEL is not set +CONFIG_AEABI=y +# CONFIG_OABI_COMPAT is not set +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HIGHMEM=y +CONFIG_HIGHPTE=y +CONFIG_HW_PERF_EVENTS=y +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y +CONFIG_FLATMEM=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_NO_BOOTMEM=y +CONFIG_MEMORY_ISOLATION=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_COMPACTION=y +CONFIG_MIGRATION=y +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_ZONE_DMA_FLAG=0 +CONFIG_BOUNCE=y +CONFIG_KSM=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 +# CONFIG_CLEANCACHE is not set +# CONFIG_FRONTSWAP is not set +CONFIG_CMA=y +# CONFIG_CMA_DEBUG is not set +CONFIG_CMA_AREAS=7 +# CONFIG_ZPOOL is not set +# CONFIG_ZBUD is not set +CONFIG_ZSMALLOC=y +# CONFIG_PGTABLE_MAPPING is not set +CONFIG_FORCE_MAX_ZONEORDER=11 +CONFIG_ALIGNMENT_TRAP=y +# CONFIG_UACCESS_WITH_MEMCPY is not set +CONFIG_SECCOMP=y +CONFIG_SWIOTLB=y +CONFIG_IOMMU_HELPER=y +# CONFIG_XEN is not set +# CONFIG_ARM_FLUSH_CONSOLE_ON_RESTART is not set + +# +# Boot options +# +CONFIG_USE_OF=y +CONFIG_ATAGS=y +# CONFIG_DEPRECATED_PARAM_STRUCT is not set +CONFIG_BUILD_ARM_APPENDED_DTB_IMAGE=y +CONFIG_BUILD_ARM_APPENDED_DTB_IMAGE_NAMES="biscuit_evt biscuit_min_evt" +CONFIG_ZBOOT_ROM_TEXT=0 +CONFIG_ZBOOT_ROM_BSS=0 +# CONFIG_ARM_APPENDED_DTB is not set +CONFIG_CMDLINE="console=tty0 console=ttyMT0,921600n1 vmalloc=496M slub_max_order=0 slub_debug=O loglevel=8 initcall_debug gpt " +CONFIG_CMDLINE_FROM_BOOTLOADER=y +# CONFIG_CMDLINE_EXTEND is not set +# CONFIG_CMDLINE_FORCE is not set +# CONFIG_KEXEC is not set +# CONFIG_CRASH_DUMP is not set +CONFIG_AUTO_ZRELADDR=y + +# +# CPU Power Management +# + +# +# CPU Frequency scaling +# +CONFIG_CPU_FREQ=y +CONFIG_CPU_FREQ_GOV_COMMON=y +# CONFIG_CPU_FREQ_STAT is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set +# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set +CONFIG_CPU_FREQ_DEFAULT_GOV_INTERACTIVE=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_INTERACTIVE=y +# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set +# CONFIG_CPUFREQ_DT is not set + +# +# ARM CPU frequency scaling drivers +# +# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set + +# +# CPU Idle +# +CONFIG_CPU_IDLE=y +# CONFIG_CPU_IDLE_GOV_LADDER is not set +CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_CPU_IDLE_GOV_MTK=y + +# +# ARM CPU Idle Drivers +# +# CONFIG_ARM_HIGHBANK_CPUIDLE is not set +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set + +# +# Floating point emulation +# + +# +# At least one emulation must be selected +# +CONFIG_VFP=y +CONFIG_VFPv3=y +CONFIG_NEON=y +CONFIG_KERNEL_MODE_NEON=y + +# +# Userspace binary formats +# +CONFIG_BINFMT_ELF=y +CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set +CONFIG_BINFMT_SCRIPT=y +# CONFIG_HAVE_AOUT is not set +# CONFIG_BINFMT_MISC is not set +CONFIG_COREDUMP=y + +# +# Power management options +# +CONFIG_SUSPEND=y +CONFIG_SUSPEND_FREEZER=y +CONFIG_WAKELOCK=y +# CONFIG_HIBERNATION is not set +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_AUTOSLEEP=y +CONFIG_PM_WAKELOCKS=y +CONFIG_PM_WAKELOCKS_LIMIT=100 +CONFIG_PM_WAKELOCKS_GC=y +CONFIG_PM_RUNTIME=y +CONFIG_PM=y +CONFIG_PM_DEBUG=y +CONFIG_PM_ADVANCED_DEBUG=y +# CONFIG_PM_TEST_SUSPEND is not set +CONFIG_PM_SLEEP_DEBUG=y +# CONFIG_APM_EMULATION is not set +CONFIG_PM_CLK=y +CONFIG_PM_GENERIC_DOMAINS=y +# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set +CONFIG_PM_GENERIC_DOMAINS_SLEEP=y +CONFIG_PM_GENERIC_DOMAINS_RUNTIME=y +CONFIG_PM_GENERIC_DOMAINS_OF=y +CONFIG_CPU_PM=y +# CONFIG_SUSPEND_TIME is not set +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARM_CPU_SUSPEND=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_NET=y + +# +# Networking options +# +CONFIG_PACKET=y +# CONFIG_PACKET_DIAG is not set +CONFIG_UNIX=y +# CONFIG_UNIX_DIAG is not set +CONFIG_XFRM=y +CONFIG_XFRM_ALGO=y +# CONFIG_XFRM_USER is not set +# CONFIG_XFRM_SUB_POLICY is not set +CONFIG_XFRM_MIGRATE=y +# CONFIG_XFRM_STATISTICS is not set +CONFIG_XFRM_IPCOMP=y +CONFIG_NET_KEY=y +# CONFIG_NET_KEY_MIGRATE is not set +CONFIG_INET=y +CONFIG_IP_MULTICAST=y +CONFIG_IP_ADVANCED_ROUTER=y +# CONFIG_IP_FIB_TRIE_STATS is not set +CONFIG_IP_MULTIPLE_TABLES=y +# CONFIG_IP_ROUTE_MULTIPATH is not set +# CONFIG_IP_ROUTE_VERBOSE is not set +CONFIG_IP_ROUTE_CLASSID=y +CONFIG_IP_PNP=y +CONFIG_IP_PNP_DHCP=y +CONFIG_IP_PNP_BOOTP=y +# CONFIG_IP_PNP_RARP is not set +CONFIG_NET_IPIP=y +# CONFIG_NET_IPGRE_DEMUX is not set +CONFIG_NET_IP_TUNNEL=y +CONFIG_IP_MROUTE=y +CONFIG_IP_MROUTE_MULTIPLE_TABLES=y +CONFIG_IP_PIMSM_V1=y +CONFIG_IP_PIMSM_V2=y +CONFIG_SYN_COOKIES=y +# CONFIG_NET_IPVTI is not set +# CONFIG_NET_UDP_TUNNEL is not set +# CONFIG_NET_FOU is not set +# CONFIG_GENEVE is not set +CONFIG_INET_AH=y +CONFIG_INET_ESP=y +CONFIG_INET_IPCOMP=y +CONFIG_INET_XFRM_TUNNEL=y +CONFIG_INET_TUNNEL=y +CONFIG_INET_XFRM_MODE_TRANSPORT=y +CONFIG_INET_XFRM_MODE_TUNNEL=y +CONFIG_INET_XFRM_MODE_BEET=y +# CONFIG_INET_LRO is not set +CONFIG_INET_DIAG=y +CONFIG_INET_TCP_DIAG=y +# CONFIG_INET_UDP_DIAG is not set +# CONFIG_TCP_CONG_ADVANCED is not set +CONFIG_TCP_CONG_CUBIC=y +CONFIG_DEFAULT_TCP_CONG="cubic" +# CONFIG_TCP_MD5SIG is not set +CONFIG_IPV6=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_OPTIMISTIC_DAD=y +CONFIG_INET6_AH=y +CONFIG_INET6_ESP=y +CONFIG_INET6_IPCOMP=y +CONFIG_IPV6_MIP6=y +CONFIG_INET6_XFRM_TUNNEL=y +CONFIG_INET6_TUNNEL=y +CONFIG_INET6_XFRM_MODE_TRANSPORT=y +CONFIG_INET6_XFRM_MODE_TUNNEL=y +CONFIG_INET6_XFRM_MODE_BEET=y +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=y +# CONFIG_IPV6_VTI is not set +CONFIG_IPV6_SIT=y +CONFIG_IPV6_SIT_6RD=y +CONFIG_IPV6_NDISC_NODETYPE=y +CONFIG_IPV6_TUNNEL=y +# CONFIG_IPV6_GRE is not set +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_MROUTE=y +# CONFIG_IPV6_MROUTE_MULTIPLE_TABLES is not set +CONFIG_IPV6_PIMSM_V2=y +# CONFIG_NETLABEL is not set +# CONFIG_ANDROID_PARANOID_NETWORK is not set +CONFIG_NET_ACTIVITY_STATS=y +CONFIG_NETWORK_SECMARK=y +# CONFIG_NET_PTP_CLASSIFY is not set +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set +CONFIG_NETFILTER=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_ADVANCED=y +CONFIG_BRIDGE_NETFILTER=m + +# +# Core Netfilter Configuration +# +CONFIG_NETFILTER_NETLINK=y +# CONFIG_NETFILTER_NETLINK_ACCT is not set +CONFIG_NETFILTER_NETLINK_QUEUE=y +CONFIG_NETFILTER_NETLINK_LOG=y +CONFIG_NF_CONNTRACK=y +CONFIG_NF_CONNTRACK_MARK=y +# CONFIG_NF_CONNTRACK_SECMARK is not set +CONFIG_NF_CONNTRACK_PROCFS=y +CONFIG_NF_CONNTRACK_EVENTS=y +# CONFIG_NF_CONNTRACK_TIMEOUT is not set +# CONFIG_NF_CONNTRACK_TIMESTAMP is not set +# CONFIG_NF_CT_PROTO_DCCP is not set +CONFIG_NF_CT_PROTO_GRE=y +# CONFIG_NF_CT_PROTO_SCTP is not set +CONFIG_NF_CT_PROTO_UDPLITE=y +# CONFIG_NF_CONNTRACK_AMANDA is not set +CONFIG_NF_CONNTRACK_FTP=y +# CONFIG_NF_CONNTRACK_H323 is not set +# CONFIG_NF_CONNTRACK_IRC is not set +# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set +# CONFIG_NF_CONNTRACK_SNMP is not set +CONFIG_NF_CONNTRACK_PPTP=y +# CONFIG_NF_CONNTRACK_SANE is not set +CONFIG_NF_CONNTRACK_SIP=y +CONFIG_NF_CONNTRACK_TFTP=y +CONFIG_NF_CT_NETLINK=y +# CONFIG_NF_CT_NETLINK_TIMEOUT is not set +# CONFIG_NETFILTER_NETLINK_QUEUE_CT is not set +CONFIG_NF_NAT=y +CONFIG_NF_NAT_NEEDED=y +CONFIG_NF_NAT_PROTO_UDPLITE=y +# CONFIG_NF_NAT_AMANDA is not set +CONFIG_NF_NAT_FTP=y +# CONFIG_NF_NAT_IRC is not set +CONFIG_NF_NAT_SIP=y +CONFIG_NF_NAT_TFTP=y +# CONFIG_NF_TABLES is not set +CONFIG_NETFILTER_XTABLES=y + +# +# Xtables combined modules +# +CONFIG_NETFILTER_XT_MARK=y +CONFIG_NETFILTER_XT_CONNMARK=y + +# +# Xtables targets +# +# CONFIG_NETFILTER_XT_TARGET_AUDIT is not set +# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set +CONFIG_NETFILTER_XT_TARGET_CLASSIFY=y +# 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=y +# CONFIG_NETFILTER_XT_TARGET_HMARK is not set +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=y +# CONFIG_NETFILTER_XT_TARGET_LED is not set +# CONFIG_NETFILTER_XT_TARGET_LOG is not set +CONFIG_NETFILTER_XT_TARGET_MARK=y +CONFIG_NETFILTER_XT_NAT=y +CONFIG_NETFILTER_XT_TARGET_NETMAP=y +CONFIG_NETFILTER_XT_TARGET_NFLOG=y +CONFIG_NETFILTER_XT_TARGET_NFQUEUE=y +# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set +# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set +CONFIG_NETFILTER_XT_TARGET_REDIRECT=y +# 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_NETFILTER_XT_TARGET_SECMARK is not set +CONFIG_NETFILTER_XT_TARGET_TCPMSS=y +# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set + +# +# Xtables matches +# +# 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=y +# 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=y +# CONFIG_NETFILTER_XT_MATCH_L2TP is not set +CONFIG_NETFILTER_XT_MATCH_LENGTH=y +CONFIG_NETFILTER_XT_MATCH_LIMIT=y +CONFIG_NETFILTER_XT_MATCH_MAC=y +CONFIG_NETFILTER_XT_MATCH_MARK=y +CONFIG_NETFILTER_XT_MATCH_MULTIPORT=y +# 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_POLICY=y +CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m +# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set +CONFIG_NETFILTER_XT_MATCH_QTAGUID=y +CONFIG_NETFILTER_XT_MATCH_QUOTA=y +CONFIG_NETFILTER_XT_MATCH_QUOTA2=y +# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set +CONFIG_NETFILTER_XT_MATCH_REALM=y +CONFIG_NETFILTER_XT_MATCH_RECENT=y +# CONFIG_NETFILTER_XT_MATCH_SCTP is not set +CONFIG_NETFILTER_XT_MATCH_SOCKET=y +CONFIG_NETFILTER_XT_MATCH_STATE=y +CONFIG_NETFILTER_XT_MATCH_STATISTIC=y +CONFIG_NETFILTER_XT_MATCH_STRING=y +CONFIG_NETFILTER_XT_MATCH_TCPMSS=y +CONFIG_NETFILTER_XT_MATCH_TIME=y +CONFIG_NETFILTER_XT_MATCH_U32=y +# CONFIG_IP_SET is not set +# CONFIG_IP_VS is not set + +# +# IP: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV4=y +CONFIG_NF_CONNTRACK_IPV4=y +CONFIG_NF_CONNTRACK_PROC_COMPAT=y +# CONFIG_NF_LOG_ARP is not set +# CONFIG_NF_LOG_IPV4 is not set +CONFIG_NF_REJECT_IPV4=y +CONFIG_NF_NAT_IPV4=y +CONFIG_NF_NAT_MASQUERADE_IPV4=y +CONFIG_NF_NAT_PROTO_GRE=y +CONFIG_NF_NAT_PPTP=y +# CONFIG_NF_NAT_H323 is not set +CONFIG_IP_NF_IPTABLES=y +# 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_FILTER=y +CONFIG_IP_NF_TARGET_REJECT=y +# CONFIG_IP_NF_TARGET_SYNPROXY is not set +CONFIG_IP_NF_NAT=y +CONFIG_IP_NF_TARGET_MASQUERADE=y +CONFIG_IP_NF_TARGET_NETMAP=y +CONFIG_IP_NF_TARGET_REDIRECT=y +CONFIG_IP_NF_MANGLE=y +# CONFIG_IP_NF_TARGET_CLUSTERIP is not set +# CONFIG_IP_NF_TARGET_ECN is not set +# CONFIG_IP_NF_TARGET_TTL is not set +CONFIG_IP_NF_RAW=y +# CONFIG_IP_NF_SECURITY is not set +CONFIG_IP_NF_ARPTABLES=y +# CONFIG_IP_NF_ARPFILTER is not set +# CONFIG_IP_NF_ARP_MANGLE is not set + +# +# IPv6: Netfilter Configuration +# +CONFIG_NF_DEFRAG_IPV6=y +CONFIG_NF_CONNTRACK_IPV6=y +CONFIG_NF_REJECT_IPV6=y +# CONFIG_NF_LOG_IPV6 is not set +# CONFIG_NF_NAT_IPV6 is not set +CONFIG_IP6_NF_IPTABLES=y +# CONFIG_IP6_NF_MATCH_AH is not set +# CONFIG_IP6_NF_MATCH_EUI64 is not set +CONFIG_IP6_NF_MATCH_FRAG=y +# CONFIG_IP6_NF_MATCH_OPTS is not set +# CONFIG_IP6_NF_MATCH_HL is not set +CONFIG_IP6_NF_MATCH_IPV6HEADER=y +# CONFIG_IP6_NF_MATCH_MH is not set +# CONFIG_IP6_NF_MATCH_RPFILTER is not set +# CONFIG_IP6_NF_MATCH_RT is not set +CONFIG_IP6_NF_TARGET_HL=y +CONFIG_IP6_NF_FILTER=y +CONFIG_IP6_NF_TARGET_REJECT=y +# CONFIG_IP6_NF_TARGET_SYNPROXY is not set +CONFIG_IP6_NF_MANGLE=y +CONFIG_IP6_NF_RAW=y +# CONFIG_IP6_NF_SECURITY is not set +# CONFIG_IP6_NF_NAT is not set +# CONFIG_BRIDGE_NF_EBTABLES is not set +# CONFIG_IP_DCCP is not set +# CONFIG_IP_SCTP is not set +# CONFIG_RDS is not set +# CONFIG_TIPC is not set +# CONFIG_ATM is not set +# CONFIG_L2TP is not set +CONFIG_STP=y +CONFIG_BRIDGE=y +CONFIG_BRIDGE_IGMP_SNOOPING=y +# CONFIG_BRIDGE_VLAN_FILTERING is not set +CONFIG_HAVE_NET_DSA=y +CONFIG_VLAN_8021Q=y +# CONFIG_VLAN_8021Q_GVRP is not set +# CONFIG_VLAN_8021Q_MVRP is not set +# CONFIG_DECNET is not set +CONFIG_LLC=y +# CONFIG_LLC2 is not set +# CONFIG_IPX is not set +# CONFIG_ATALK is not set +# CONFIG_X25 is not set +# CONFIG_LAPB is not set +# CONFIG_PHONET is not set +# CONFIG_6LOWPAN is not set +# CONFIG_IEEE802154 is not set +CONFIG_NET_SCHED=y + +# +# Queueing/Scheduling +# +# CONFIG_NET_SCH_CBQ is not set +CONFIG_NET_SCH_HTB=y +# CONFIG_NET_SCH_HFSC is not set +# CONFIG_NET_SCH_PRIO is not set +# CONFIG_NET_SCH_MULTIQ 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_TEQL is not set +# CONFIG_NET_SCH_TBF is not set +# CONFIG_NET_SCH_GRED is not set +# CONFIG_NET_SCH_DSMARK is not set +# CONFIG_NET_SCH_NETEM is not set +# CONFIG_NET_SCH_DRR is not set +# CONFIG_NET_SCH_MQPRIO is not set +# CONFIG_NET_SCH_CHOKE is not set +# CONFIG_NET_SCH_QFQ is not set +# CONFIG_NET_SCH_CODEL is not set +# CONFIG_NET_SCH_FQ_CODEL is not set +# CONFIG_NET_SCH_FQ is not set +# CONFIG_NET_SCH_HHF is not set +# CONFIG_NET_SCH_PIE is not set +CONFIG_NET_SCH_INGRESS=y +# CONFIG_NET_SCH_PLUG is not set + +# +# Classification +# +CONFIG_NET_CLS=y +# CONFIG_NET_CLS_BASIC is not set +# CONFIG_NET_CLS_TCINDEX is not set +# CONFIG_NET_CLS_ROUTE4 is not set +CONFIG_NET_CLS_FW=y +CONFIG_NET_CLS_U32=y +CONFIG_CLS_U32_PERF=y +CONFIG_CLS_U32_MARK=y +# CONFIG_NET_CLS_RSVP is not set +# CONFIG_NET_CLS_RSVP6 is not set +CONFIG_NET_CLS_FLOW=y +# CONFIG_NET_CLS_CGROUP is not set +# CONFIG_NET_CLS_BPF is not set +# CONFIG_NET_EMATCH is not set +CONFIG_NET_CLS_ACT=y +CONFIG_NET_ACT_POLICE=y +# CONFIG_NET_ACT_GACT is not set +CONFIG_NET_ACT_MIRRED=y +CONFIG_NET_ACT_IPT=y +# CONFIG_NET_ACT_NAT is not set +# CONFIG_NET_ACT_PEDIT is not set +# CONFIG_NET_ACT_SIMP is not set +# CONFIG_NET_ACT_SKBEDIT is not set +# CONFIG_NET_ACT_CSUM is not set +CONFIG_NET_CLS_IND=y +CONFIG_NET_SCH_FIFO=y +# CONFIG_DCB is not set +# CONFIG_DNS_RESOLVER is not set +# CONFIG_BATMAN_ADV is not set +# CONFIG_OPENVSWITCH is not set +# CONFIG_VSOCKETS is not set +# CONFIG_NETLINK_MMAP is not set +# CONFIG_NETLINK_DIAG is not set +# CONFIG_NET_MPLS_GSO is not set +# CONFIG_HSR is not set +CONFIG_RPS=y +CONFIG_RFS_ACCEL=y +CONFIG_XPS=y +# CONFIG_CGROUP_NET_PRIO is not set +# CONFIG_CGROUP_NET_CLASSID is not set +CONFIG_NET_RX_BUSY_POLL=y +CONFIG_BQL=y +# CONFIG_BPF_JIT is not set +CONFIG_NET_FLOW_LIMIT=y + +# +# Network testing +# +# CONFIG_NET_PKTGEN is not set +CONFIG_NET_DROP_MONITOR=y +# CONFIG_HAMRADIO is not set +# CONFIG_CAN is not set +# CONFIG_IRDA is not set +# CONFIG_BT is not set +# CONFIG_AF_RXRPC is not set +CONFIG_FIB_RULES=y +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_PRIV=y +CONFIG_CFG80211=y +CONFIG_NL80211_TESTMODE=y +CONFIG_CFG80211_DEVELOPER_WARNINGS=y +# CONFIG_CFG80211_REG_DEBUG is not set +# CONFIG_CFG80211_CERTIFICATION_ONUS is not set +# CONFIG_CFG80211_DEFAULT_PS is not set +CONFIG_CFG80211_DEBUGFS=y +# CONFIG_CFG80211_INTERNAL_REGDB is not set +CONFIG_CFG80211_WEXT=y +# CONFIG_LIB80211 is not set +# CONFIG_MAC80211 is not set +# CONFIG_WIMAX is not set +# CONFIG_RFKILL is not set +# CONFIG_RFKILL_REGULATOR is not set +# CONFIG_NET_9P is not set +# CONFIG_CAIF is not set +# CONFIG_CEPH_LIB is not set +# CONFIG_NFC is not set +CONFIG_HAVE_BPF_JIT=y + +# +# Device Drivers +# + +# +# Generic Driver Options +# +CONFIG_UEVENT_HELPER=y +CONFIG_UEVENT_HELPER_PATH="" +CONFIG_DEVTMPFS=y +# CONFIG_DEVTMPFS_MOUNT is not set +CONFIG_STANDALONE=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_FW_LOADER=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_EXTRA_FIRMWARE="i2s_to_spi_v34.bin" +CONFIG_EXTRA_FIRMWARE_DIR="firmware" +CONFIG_FW_LOADER_USER_HELPER=y +CONFIG_FW_LOADER_USER_HELPER_FALLBACK=y +CONFIG_ALLOW_DEV_COREDUMP=y +# CONFIG_DEBUG_DRIVER is not set +# CONFIG_DEBUG_DEVRES is not set +# CONFIG_SYS_HYPERVISOR is not set +# CONFIG_GENERIC_CPU_DEVICES is not set +# CONFIG_HAVE_CPU_AUTOPROBE is not set +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_SPI=y +CONFIG_REGMAP_MMIO=y +CONFIG_DMA_SHARED_BUFFER=y +# CONFIG_FENCE_TRACE is not set +# CONFIG_DMA_CMA is not set + +# +# Bus devices +# +# CONFIG_BRCMSTB_GISB_ARB is not set +# CONFIG_ARM_CCI is not set +# CONFIG_ARM_CCN is not set +# CONFIG_VEXPRESS_CONFIG is not set +# CONFIG_CONNECTOR is not set +CONFIG_MTD=y +# CONFIG_MTD_TESTS is not set +# CONFIG_MTD_REDBOOT_PARTS is not set +# CONFIG_MTD_CMDLINE_PARTS is not set +# CONFIG_MTD_AFS_PARTS is not set +CONFIG_MTD_OF_PARTS=y +# CONFIG_MTD_AR7_PARTS is not set + +# +# User Modules And Translation Layers +# +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +# CONFIG_FTL is not set +# CONFIG_NFTL is not set +# CONFIG_INFTL is not set +# CONFIG_RFD_FTL is not set +# CONFIG_SSFDC is not set +# CONFIG_SM_FTL is not set +# CONFIG_MTD_OOPS is not set +# CONFIG_MTD_SWAP is not set + +# +# RAM/ROM/Flash chip drivers +# +# CONFIG_MTD_CFI is not set +# CONFIG_MTD_JEDECPROBE is not set +CONFIG_MTD_MAP_BANK_WIDTH_1=y +CONFIG_MTD_MAP_BANK_WIDTH_2=y +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +# CONFIG_MTD_MAP_BANK_WIDTH_32 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_RAM is not set +# CONFIG_MTD_ROM is not set +# CONFIG_MTD_ABSENT is not set + +# +# Mapping drivers for chip access +# +# CONFIG_MTD_COMPLEX_MAPPINGS is not set +# CONFIG_MTD_PLATRAM is not set + +# +# Self-contained MTD device drivers +# +# CONFIG_MTD_DATAFLASH is not set +# CONFIG_MTD_SST25L is not set +# CONFIG_MTD_SLRAM is not set +# CONFIG_MTD_PHRAM is not set +# CONFIG_MTD_MTDRAM is not set +# CONFIG_MTD_BLOCK2MTD is not set + +# +# Disk-On-Chip Device Drivers +# +# CONFIG_MTD_DOCG3 is not set +CONFIG_MTD_NAND_IDS=y +CONFIG_MTD_NAND_ECC=y +# CONFIG_MTD_NAND_ECC_SMC is not set +CONFIG_MTD_NAND=y +# CONFIG_MTD_NAND_ECC_BCH is not set +# CONFIG_MTD_SM_COMMON is not set +# CONFIG_MTD_NAND_DENALI is not set +# CONFIG_MTD_NAND_GPIO is not set +# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set +# CONFIG_MTD_NAND_DISKONCHIP is not set +# CONFIG_MTD_NAND_DOCG4 is not set +# CONFIG_MTD_NAND_NANDSIM is not set +CONFIG_MTD_NAND_PLATFORM=y +# CONFIG_MTD_ONENAND is not set + +# +# LPDDR & LPDDR2 PCM memory drivers +# +# CONFIG_MTD_LPDDR is not set +# CONFIG_MTD_LPDDR2_NVM is not set +# CONFIG_MTD_SPI_NOR is not set +CONFIG_MTD_UBI=y +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTD_UBI_BEB_LIMIT=0 +# CONFIG_MTD_UBI_FASTMAP is not set +# CONFIG_MTD_UBI_GLUEBI is not set +# CONFIG_MTD_UBI_BLOCK is not set +CONFIG_DTC=y +CONFIG_OF=y + +# +# Device Tree and Open Firmware support +# +# CONFIG_OF_SELFTEST is not set +CONFIG_OF_FLATTREE=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_IRQ=y +CONFIG_OF_NET=y +CONFIG_OF_MTD=y +CONFIG_OF_RESERVED_MEM=y +CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y +# CONFIG_PARPORT is not set +CONFIG_BLK_DEV=y +# CONFIG_BLK_DEV_NULL_BLK is not set +CONFIG_ZRAM=y +# CONFIG_ZRAM_LZ4_COMPRESS is not set +# CONFIG_ZRAM_LZ4K_COMPRESS is not set +# CONFIG_ZRAM_DEBUG is not set +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +# CONFIG_BLK_DEV_CRYPTOLOOP is not set +# CONFIG_BLK_DEV_DRBD is not set +# CONFIG_BLK_DEV_NBD is not set +# CONFIG_BLK_DEV_RAM is not set +# CONFIG_CDROM_PKTCDVD is not set +# CONFIG_ATA_OVER_ETH is not set +# CONFIG_MG_DISK is not set +# CONFIG_BLK_DEV_RBD is not set + +# +# Misc devices +# +# CONFIG_SENSORS_LIS3LV02D is not set +# CONFIG_AD525X_DPOT is not set +# CONFIG_DUMMY_IRQ is not set +# CONFIG_ICS932S401 is not set +# CONFIG_ENCLOSURE_SERVICES is not set +# CONFIG_APDS9802ALS is not set +# CONFIG_ISL29003 is not set +# CONFIG_ISL29020 is not set +# CONFIG_SENSORS_TSL2550 is not set +# CONFIG_SENSORS_BH1780 is not set +# CONFIG_SENSORS_BH1770 is not set +# CONFIG_SENSORS_APDS990X is not set +# CONFIG_HMC6352 is not set +# CONFIG_DS1682 is not set +# CONFIG_TI_DAC7512 is not set +# CONFIG_UID_STAT is not set +# CONFIG_BMP085_I2C is not set +# CONFIG_BMP085_SPI is not set +# CONFIG_USB_SWITCH_FSA9480 is not set +# CONFIG_LATTICE_ECP3_CONFIG is not set +# CONFIG_SRAM is not set +# CONFIG_MDUMP is not set +# CONFIG_MDUMP_COMPRESS is not set +# CONFIG_UID_CPUTIME is not set +# CONFIG_SND_HEADSET_TS3A225E is not set +CONFIG_IDME=y +# CONFIG_ALS_ISL29034 is not set +CONFIG_ALS_TSL2583=y +CONFIG_AMZN_AMS_ALS=y +CONFIG_AMS_ADJUST_WITH_BASELINE=y +CONFIG_ALS_TSL2584_AUTOZERO=y +CONFIG_SENSORS_TSL2540=y +CONFIG_AMZ_PRIV=y +# CONFIG_ONETIME_METRIC is not set +# CONFIG_C2PORT is not set + +# +# EEPROM support +# +# CONFIG_EEPROM_AT24 is not set +# CONFIG_EEPROM_AT25 is not set +# CONFIG_EEPROM_LEGACY is not set +# CONFIG_EEPROM_MAX6875 is not set +# CONFIG_EEPROM_93CX6 is not set +# CONFIG_EEPROM_93XX46 is not set + +# +# Texas Instruments shared transport line discipline +# +# CONFIG_TI_ST is not set +# CONFIG_SENSORS_LIS3_SPI is not set +# CONFIG_SENSORS_LIS3_I2C is not set + +# +# Altera FPGA firmware download module +# +# CONFIG_ALTERA_STAPL is not set + +# +# Intel MIC Bus Driver +# + +# +# Intel MIC Host Driver +# + +# +# Intel MIC Card Driver +# +# CONFIG_ECHO is not set +# CONFIG_CXL_BASE is not set +CONFIG_MEDIATEK_SOLUTION=y +CONFIG_MTK_PLATFORM="mt8163" +CONFIG_ARCH_MTK_PROJECT="biscuit" +# CONFIG_MTK_LEGACY is not set +# CONFIG_MTK_INTERNAL is not set +# CONFIG_FPGA_EARLY_PORTING is not set +# CONFIG_MTK_LM_MODE is not set +CONFIG_MTK_MEM=y +# CONFIG_MTK_MEMCFG is not set +CONFIG_MTK_BASE_POWER=y +# CONFIG_MTK_SHARED_SDCARD is not set +# CONFIG_MTK_SENSOR_SUPPORT is not set +CONFIG_CUSTOM_KERNEL_IMGSENSOR="" +# CONFIG_MT_ENG_BUILD is not set +# CONFIG_MTK_SEC_VIDEO_PATH_SUPPORT is not set +# CONFIG_MTK_LCM_PHYSICAL_ROTATION_HW is not set +# CONFIG_FREE_FB_BUFFER is not set +# CONFIG_NO_DISPLAY is not set +CONFIG_MTK_GPT_COMMON=y +CONFIG_MTK_SERIAL=y +CONFIG_MTK_SERIAL_CONSOLE=y +# CONFIG_MTK_SERIAL_MODEM_TEST is not set +# CONFIG_MTK_IRTX_SUPPORT is not set +# CONFIG_MTK_IRQ is not set +CONFIG_MTK_AUXADC=y +CONFIG_AUXADC_NEED_POWER_ON=y +CONFIG_AUXADC_NOT_CONTROL_APMIXED_BASE=y +# CONFIG_MTK_VIDEOCODEC_DRIVER is not set +# CONFIG_MTK_M4U is not set +# CONFIG_MTK_I2C is not set +CONFIG_MTK_AP_TO_SCP_I2C=y +# CONFIG_MTK_LEDS is not set +CONFIG_LIGHTNESS_MAPPING_VALUE=255 +# CONFIG_BACKLIGHT_SUPPORT_LP8557 is not set +# CONFIG_ENABLE_BACKLIGHT_FACTOR is not set +# CONFIG_MTK_LEDS_DEFAULT_BRIGHTNESS is not set +# CONFIG_MTK_VIBRATOR is not set +# CONFIG_MTK_JPEG is not set +CONFIG_MTK_PMIC=y +CONFIG_MTK_PMIC_WRAP=y +CONFIG_MTK_GPT_SCHEME_SUPPORT=y +# CONFIG_MTK_SYSENV is not set +# CONFIG_MTPROF is not set +CONFIG_USB_MTK_HDRC=y +# CONFIG_USB_AMAZON_DOCK is not set +# CONFIG_MTK_MUSB_QMU_SUPPORT is not set +# CONFIG_CMD_MODE_CHANGE is not set +CONFIG_USB_MTK_OTG=y +# CONFIG_MTK_UART_USB_SWITCH is not set +# CONFIG_MTK_USB_RESET_WIFI_DONGLE is not set +# CONFIG_IDDIG_CONTROL is not set +# CONFIG_MTK_USBFSH is not set +# CONFIG_USBIF_COMPLIANCE is not set +# CONFIG_USB_MU3D_PIO_ONLY is not set +# CONFIG_USB_MU3D_DRV is not set +# CONFIG_USB_MU3D_DVT is not set +# CONFIG_MU3_PHY is not set +# CONFIG_MTK_GPIO is not set +# CONFIG_MTK_MT6306_SUPPORT is not set +# CONFIG_MTK_CMDQ is not set +# CONFIG_MTK_CMDQ_TAB is not set +# CONFIG_MTK_CMDQ_HIDE_ERROR_LOGS is not set +# CONFIG_MTK_SMI is not set +# CONFIG_MTK_SMI_VARIANT is not set +# CONFIG_MTK_CLKMGR is not set +CONFIG_MTK_BOOT=y +CONFIG_MTK_BOOT_REASON=y +CONFIG_MTK_CHIP=y +CONFIG_MTK_CCCI_DEVICES=y +CONFIG_MTK_MD_SBP_CUSTOM_VALUE="" +CONFIG_MTK_MD2_SBP_CUSTOM_VALUE="" +# CONFIG_MTK_NET_CCMNI is not set +# CONFIG_MTK_CCCI_EXT is not set +# CONFIG_MTK_CCCI_DRIVER is not set +# CONFIG_MTK_ECCCI_DRIVER is not set +# CONFIG_MTK_C2K_SUPPORT is not set +# CONFIG_MTK_C2K_OM_SOLUTION1 is not set +CONFIG_CUSTOM_KERNEL_SSW="" +CONFIG_MTK_DEVAPC_DRIVER=y +CONFIG_MTK_DEVINFO_DRIVER=y +# CONFIG_MTK_GPU_SUPPORT is not set +# CONFIG_MTK_MMPROFILE_SUPPORT is not set +# CONFIG_MMPROFILE is not set +# CONFIG_MTK_LCM is not set +CONFIG_CUSTOM_KERNEL_LCM="" +# CONFIG_PANEL_BRIGHTNESS_SCALING is not set +# CONFIG_MTK_VIDEOX is not set +CONFIG_MTK_LCM_PHYSICAL_ROTATION="" +CONFIG_LCM_HEIGHT="1920" +CONFIG_LCM_WIDTH="1080" +CONFIG_CUSTOM_LCM_X="0" +CONFIG_CUSTOM_LCM_Y="0" +# CONFIG_MTK_AAL_SUPPORT is not set +# CONFIG_MTK_OD_SUPPORT is not set +# CONFIG_MTK_DISP_HIDE_ERROR_LOGS is not set +# CONFIG_MTK_CQDMA is not set +CONFIG_MTK_DRAMC=y +# CONFIG_MTK_SYNC is not set +CONFIG_MTK_PWM=y +# CONFIG_CUSTOM_KERNEL_ACCELEROMETER is not set +# CONFIG_MTK_MC3410_NEW is not set +# CONFIG_MTK_MPU6050G_NEW is not set +# CONFIG_MTK_BMA222E_NEW is not set +# CONFIG_BMA222_LOWPASS is not set +# CONFIG_CUSTOM_KERNEL_SENSORHUB is not set +# CONFIG_MTK_LSM6DS3 is not set +# CONFIG_MTK_BMA253 is not set +# CONFIG_MTK_BMI160_ACC is not set +# CONFIG_CUSTOM_KERNEL_ALSPS is not set +# CONFIG_MTK_AUTO_DETECT_ALSPS is not set +# CONFIG_MTK_CM36652_NEW is not set +# CONFIG_MTK_APDS9930_NEW is not set +# CONFIG_MTK_EPL2182_NEW is not set +# CONFIG_MTK_STK3X1X_STK is not set +# CONFIG_MTK_JSA1214 is not set +# CONFIG_CUSTOM_KERNEL_GYROSCOPE is not set +# CONFIG_MTK_ITG1010_NEW is not set +# CONFIG_MTK_MPU6050GY_NEW is not set +# CONFIG_MTK_BMI160_GYRO is not set +# CONFIG_MTK_AUTO_DETECT_MAGNETOMETER is not set +# CONFIG_CUSTOM_KERNEL_MAGNETOMETER is not set +# CONFIG_MTK_AKM09911_NEW is not set +# CONFIG_MTK_HWMON is not set +# CONFIG_CUSTOM_KERNEL_BAROMETER is not set +# CONFIG_MTK_BMP180 is not set +# CONFIG_MTK_BMP180_NEW is not set +# CONFIG_CUSTOM_KERNEL_ACTIVITY_SENSOR is not set +# CONFIG_CUSTOM_KERNEL_FACE_DOWN_SENSOR is not set +# CONFIG_CUSTOM_KERNEL_GRV_SENSOR is not set +# CONFIG_CUSTOM_KERNEL_GMRV_SENSOR is not set +# CONFIG_CUSTOM_KERNEL_GLANCE_GESTURE_SENSOR is not set +# CONFIG_CUSTOM_KERNEL_GRAVITY_SENSOR is not set +# CONFIG_CUSTOM_KERNEL_HEART_RATE_SENSOR is not set +# CONFIG_CUSTOM_KERNEL_HEART is not set +# CONFIG_CUSTOM_KERNEL_IN_POCKET_SENSOR is not set +# CONFIG_CUSTOM_KERNEL_LINEARACCEL_SENSOR is not set +# CONFIG_CUSTOM_KERNEL_PEDOMETER is not set +# CONFIG_CUSTOM_KERNEL_PICK_UP_SENSOR is not set +# CONFIG_CUSTOM_KERNEL_RV_SENSOR is not set +# CONFIG_CUSTOM_KERNEL_SHAKE_SENSOR is not set +# CONFIG_CUSTOM_KERNEL_STEP_COUNTER is not set +# CONFIG_CUSTOM_KERNEL_SIGNIFICANT_MOTION_SENSOR is not set +# CONFIG_CUSTOM_KERNEL_TILT_DETECTOR_SENSOR is not set +# CONFIG_CUSTOM_KERNEL_WAKE_GESTURE_SENSOR is not set +# CONFIG_CUSTOM_KERNEL_PDR_SENSOR is not set +# CONFIG_CUSTOM_KERNEL_FREEFALL_SENSOR is not set +# CONFIG_MTK_SCP_SENSORHUB is not set +# CONFIG_MTK_SENSOR_HUB_SUPPORT is not set +# CONFIG_HAVE_TRUSTONIC_TEE_SUPPORT is not set +CONFIG_MTK_FREQ_HOPPING=y +CONFIG_MTK_SYS_CIRQ=y +CONFIG_MTK_GIC_EXT=y +# CONFIG_MTK_ACCDET is not set +CONFIG_MTK_AMZN_ACCDET=y +# CONFIG_ACCDET_EINT is not set +# CONFIG_ACCDET_EINT_IRQ is not set +# CONFIG_ACCDET_PIN_SWAP is not set +# CONFIG_ACCDET_PIN_RECOGNIZATION is not set +# CONFIG_FOUR_KEY_HEADSET is not set +# CONFIG_TS3A225E_ACCDET is not set +# CONFIG_ACCDET_OMTP_CTIA_SWITCH is not set +# CONFIG_ACCDET_USE_VCAMAF_POWER is not set +# CONFIG_MTK_SECURITY_SW_SUPPORT is not set +CONFIG_MTK_LASTPC=y +# CONFIG_MTK_WATCHPOINT is not set +CONFIG_MTK_SYSTRACKER=y +# CONFIG_MTK_SYSTRACKER_V2 is not set +CONFIG_MTK_RAM_CONSOLE=y +# CONFIG_MTK_RAM_CONSOLE_USING_SRAM is not set +CONFIG_MTK_RAM_CONSOLE_USING_DRAM=y +CONFIG_MTK_RAM_CONSOLE_SIZE=0x3000 +CONFIG_MTK_RAM_CONSOLE_ADDR=0xF912D000 +CONFIG_MTK_RAM_CONSOLE_DRAM_SIZE=0x10000 +CONFIG_MTK_RAM_CONSOLE_DRAM_ADDR=0x44400000 +CONFIG_HAVE_XLOG_SUPPORT=y + +# +# MTK runqueue statistic calculation and CPU affinity +# +CONFIG_MTK_SCHED_RQAVG_KS=y +CONFIG_MTK_SCHED_RQAVG_US=y +# CONFIG_MT_CPU_AFFINITY is not set + +# +# MT load balance and schedule enhancement +# +# CONFIG_MT_LOAD_BALANCE_ENHANCEMENT is not set +CONFIG_MT_SCHED_INTEROP=y +# CONFIG_MT_SCHED_TRACE is not set +# CONFIG_MT_DEBUG_PREEMPT is not set + +# +# MTK Cluster MultiProcessor Scheduler +# +# CONFIG_MTK_CPU_TOPOLOGY is not set + +# +# MTK Heterogenous MultiProcessor Scheduler +# +# CONFIG_DISABLE_CPU_SCHED_DOMAIN_BALANCE is not set +# CONFIG_SCHED_HMP is not set +# CONFIG_SCHED_HMP_PRIO_FILTER is not set +# CONFIG_HMP_FREQUENCY_INVARIANT_SCALE is not set +# CONFIG_HMP_TRACER is not set + +# +# MTK CPU boost mechanism +# +CONFIG_MTK_DYNAMIC_BOOST=y +CONFIG_TOUCH_BOOST=y +# CONFIG_MTK_MIN_PERF_CORES is not set +CONFIG_HAVE_MTK_IN_HOUSE_TEE_SUPPORT=y +CONFIG_MTK_IN_HOUSE_TEE_SUPPORT=y +# CONFIG_MTK_FMRADIO is not set +# CONFIG_MTK_FM is not set +# CONFIG_MTK_FM_SUPPORT is not set +# CONFIG_MTK_MERGE_INTERFACE_SUPPORT is not set +# CONFIG_MTK_IMGSENSOR is not set +# CONFIG_MTK_FRONT_CAMERA_ROT is not set +CONFIG_GPS=y +CONFIG_MTK_GPS=y +# CONFIG_MTK_GPS_SUPPORT is not set +# CONFIG_MTK_MULTIBRIDGE_SUPPORT is not set +CONFIG_MTK_BTIF=y +CONFIG_MTK_COMBO=y +# CONFIG_MTK_COMBO_CHIP_MT6620 is not set +# CONFIG_MTK_COMBO_CHIP_MT6628 is not set +# CONFIG_MTK_COMBO_CHIP_MT6630 is not set +# CONFIG_MTK_COMBO_CHIP_MT76x2 is not set +# CONFIG_MTK_COMBO_CHIP_CONSYS_6572 is not set +# CONFIG_MTK_COMBO_CHIP_CONSYS_6582 is not set +# CONFIG_MTK_COMBO_CHIP_CONSYS_8127 is not set +# CONFIG_MTK_COMBO_CHIP_CONSYS_6752 is not set +# CONFIG_MTK_COMBO_CHIP_CONSYS_6592 is not set +CONFIG_MTK_COMBO_CHIP_CONSYS_8163=y +# CONFIG_MTK_COMBO_CHIP_CONSYS_6735 is not set +# CONFIG_MTK_COMBO_CHIP_CONSYS_6580 is not set +CONFIG_MTK_COMBO_CHIP="CONSYS_8163" +CONFIG_MTK_COMBO_PLAT_PATH="" +# CONFIG_MTK_COMBO_COMM is not set +CONFIG_MTK_COMBO_BT=y +# CONFIG_MTK_COMBO_ANT is not set +# CONFIG_MTK_COMBO_GPS is not set +CONFIG_MTK_COMBO_WIFI=y +# CONFIG_MTK_BT_SUPPORT is not set +CONFIG_MTK_WAPI_SUPPORT=y +# CONFIG_MTK_PASSPOINT_R1_SUPPORT is not set +# CONFIG_MTK_PASSPOINT_R2_SUPPORT is not set +CONFIG_MTK_WIFI_MCC_SUPPORT=y +CONFIG_MTK_DHCPV6C_WIFI=y +# CONFIG_MTK_WFD_SUPPORT is not set +CONFIG_MTK_CONN_LTE_IDC_SUPPORT=y +CONFIG_MTK_WIFI_ANTENNA_SWITCH=y +CONFIG_MTK_WIFI_ANTENNA_SELECT=y +CONFIG_MTK_WIFI_OOBE_AP_MODE=y +CONFIG_MTK_WIFI_LOGGING_REDUCTION=y +# CONFIG_MTK_NFC is not set +# CONFIG_MTK_LENS is not set +# CONFIG_MTK_LENS_DUMMYLENS_SUPPORT is not set +# CONFIG_MTK_LENS_AD5820AF_SUPPORT is not set +# CONFIG_MTK_LENS_AD5823_SUPPORT is not set +# CONFIG_MTK_LENS_AD5823AF_SUPPORT is not set +# CONFIG_MTK_LENS_AK7345AF_SUPPORT is not set +# CONFIG_MTK_LENS_BU6424AF_SUPPORT is not set +# CONFIG_MTK_LENS_BU6429AF_SUPPORT is not set +# CONFIG_MTK_LENS_BU64745GWZAF_SUPPORT is not set +# CONFIG_MTK_LENS_DW9718AF_SUPPORT is not set +# CONFIG_MTK_LENS_DW9714AF_SUPPORT is not set +# CONFIG_MTK_LENS_DW9714A_SUPPORT is not set +# CONFIG_MTK_LENS_DW9814AF_SUPPORT is not set +# CONFIG_MTK_LENS_LC898122AF_SUPPORT is not set +# CONFIG_MTK_LENS_LC898212AF_SUPPORT is not set +# CONFIG_MTK_LENS_FM50AF_SUPPORT is not set +# CONFIG_MTK_LENS_MT9P017AF_SUPPORT is not set +# CONFIG_MTK_LENS_OV8825AF_SUPPORT is not set +# CONFIG_MTK_LENS_SENSORDRIVE_SUPPORT is not set +# CONFIG_MTK_LENS_GAF001AF_SUPPORT is not set +# CONFIG_MTK_LENS_GAF002AF_SUPPORT is not set +# CONFIG_MTK_LENS_GAF008AF_SUPPORT is not set +# CONFIG_MTK_LENS_WV511AAF_SUPPORT is not set +# CONFIG_MTK_FLASHLIGHT is not set +CONFIG_CUSTOM_KERNEL_FLASHLIGHT="" +# CONFIG_HAVE_AEE_FEATURE is not set +# CONFIG_MTK_AEE_FEATURE is not set +CONFIG_MTK_AEE_AED=y +# CONFIG_MTK_AEE_IPANIC is not set +# CONFIG_MTK_AEE_POWERKEY_HANG_DETECT is not set +# CONFIG_MTK_AEE_UT is not set +# CONFIG_MTK_THERMAL_PA_VIA_ATCMD is not set +CONFIG_THERMAL_BISCUIT=y +# CONFIG_THERMAL_abe123 is not set +# CONFIG_THERMAL_sbc123 is not set +# CONFIG_THERMAL_abd123 is not set +# CONFIG_THERMAL_abg123 is not set +# CONFIG_THERMAL_WIFI_COOLER is not set +# CONFIG_VS_BACKLIGHT_COOLER is not set +# CONFIG_THERMAL_ALT_CPU_ZONE is not set +CONFIG_MTK_RTC=y +CONFIG_MTK_ATF_LOGGER=y +# CONFIG_SSUSB_DRV is not set +# CONFIG_SSUSB_MU3_PHY is not set +# CONFIG_SSUSB_MTK_XHCI is not set +# CONFIG_SSUSB_MTK_TEST_XHCI is not set +CONFIG_MTK_MLOG=y +CONFIG_MTK_EMI_BWL=y +CONFIG_MTK_EMI_MPU=y +# CONFIG_MTK_MJC_DRIVER is not set +CONFIG_MD32_SUPPORT=y +CONFIG_MTK_EMI_MBW=y +# CONFIG_MTK_TC1_FEATURE is not set +CONFIG_MTK_BTCVSD=y +# CONFIG_MTK_MTD_NAND is not set +# CONFIG_MTK_DUM_CHAR is not set +CONFIG_MTK_ICE_DEUBG=y +# CONFIG_MTK_HDMI_SUPPORT is not set + +# +# SCSI device support +# +CONFIG_SCSI_MOD=y +# CONFIG_RAID_ATTRS is not set +CONFIG_SCSI=y +CONFIG_SCSI_DMA=y +# CONFIG_SCSI_NETLINK is not set +# CONFIG_SCSI_MQ_DEFAULT is not set +CONFIG_SCSI_PROC_FS=y + +# +# SCSI support type (disk, tape, CD-ROM) +# +CONFIG_BLK_DEV_SD=y +# CONFIG_CHR_DEV_ST is not set +# CONFIG_CHR_DEV_OSST is not set +# CONFIG_BLK_DEV_SR is not set +# CONFIG_CHR_DEV_SG is not set +# CONFIG_CHR_DEV_SCH is not set +# CONFIG_SCSI_CONSTANTS is not set +# CONFIG_SCSI_LOGGING is not set +CONFIG_SCSI_SCAN_ASYNC=y + +# +# SCSI Transports +# +# CONFIG_SCSI_SPI_ATTRS is not set +# CONFIG_SCSI_FC_ATTRS is not set +# CONFIG_SCSI_ISCSI_ATTRS is not set +# CONFIG_SCSI_SAS_ATTRS is not set +# CONFIG_SCSI_SAS_LIBSAS is not set +# CONFIG_SCSI_SRP_ATTRS is not set +# CONFIG_SCSI_LOWLEVEL is not set +# CONFIG_SCSI_DH is not set +# CONFIG_SCSI_OSD_INITIATOR is not set +# CONFIG_ATA is not set +CONFIG_MD=y +CONFIG_BLK_DEV_MD=y +CONFIG_MD_AUTODETECT=y +CONFIG_MD_LINEAR=y +# CONFIG_MD_RAID0 is not set +# CONFIG_MD_RAID1 is not set +# CONFIG_MD_RAID10 is not set +# CONFIG_MD_RAID456 is not set +# CONFIG_MD_MULTIPATH is not set +# CONFIG_MD_FAULTY is not set +# CONFIG_BCACHE is not set +CONFIG_BLK_DEV_DM_BUILTIN=y +CONFIG_BLK_DEV_DM=y +# CONFIG_DM_DEBUG is not set +CONFIG_DM_BUFIO=y +CONFIG_DM_CRYPT=y +# CONFIG_DM_SNAPSHOT is not set +# CONFIG_DM_THIN_PROVISIONING is not set +# CONFIG_DM_CACHE is not set +# CONFIG_DM_ERA is not set +# CONFIG_DM_MIRROR is not set +# CONFIG_DM_RAID is not set +# CONFIG_DM_ZERO is not set +# CONFIG_DM_MULTIPATH is not set +# CONFIG_DM_DELAY is not set +CONFIG_DM_UEVENT=y +# CONFIG_DM_FLAKEY is not set +CONFIG_DM_VERITY=y +CONFIG_DM_VERITY_HASH_PREFETCH_MIN_SIZE_128=y +CONFIG_DM_VERITY_HASH_PREFETCH_MIN_SIZE=128 +CONFIG_DM_ANDROID_VERITY=y +CONFIG_DM_VERITY_FEC=y +# CONFIG_DM_SWITCH is not set +# CONFIG_DM_LOG_WRITES is not set +# CONFIG_TARGET_CORE is not set +CONFIG_NETDEVICES=y +CONFIG_NET_CORE=y +# CONFIG_BONDING is not set +# CONFIG_DUMMY is not set +# CONFIG_EQUALIZER is not set +CONFIG_IFB=y +# CONFIG_NET_TEAM is not set +# CONFIG_MACVLAN is not set +# CONFIG_VXLAN is not set +# CONFIG_NETCONSOLE is not set +# CONFIG_NETPOLL is not set +# CONFIG_NET_POLL_CONTROLLER is not set +CONFIG_TUN=y +# CONFIG_VETH is not set +# CONFIG_NLMON is not set + +# +# CAIF transport drivers +# + +# +# Distributed Switch Architecture drivers +# +# CONFIG_NET_DSA_MV88E6XXX is not set +# CONFIG_NET_DSA_MV88E6060 is not set +# CONFIG_NET_DSA_MV88E6XXX_NEED_PPU is not set +# CONFIG_NET_DSA_MV88E6131 is not set +# CONFIG_NET_DSA_MV88E6123_61_65 is not set +# CONFIG_NET_DSA_MV88E6171 is not set +# CONFIG_NET_DSA_BCM_SF2 is not set +# CONFIG_ETHERNET is not set +# CONFIG_PHYLIB is not set +# CONFIG_MICREL_KS8995MA is not set +CONFIG_PPP=y +CONFIG_PPP_BSDCOMP=y +CONFIG_PPP_DEFLATE=y +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=y +CONFIG_PPP_MULTILINK=y +CONFIG_PPPOE=y +CONFIG_PPPOLAC=y +CONFIG_PPPOPNS=y +CONFIG_PPP_ASYNC=y +CONFIG_PPP_SYNC_TTY=y +# CONFIG_SLIP is not set +CONFIG_SLHC=y +CONFIG_USB_NET_DRIVERS=y +# CONFIG_USB_CATC is not set +# CONFIG_USB_KAWETH is not set +# CONFIG_USB_PEGASUS is not set +# CONFIG_USB_RTL8150 is not set +# CONFIG_USB_RTL8152 is not set +# CONFIG_USB_USBNET is not set +# CONFIG_USB_IPHETH is not set +CONFIG_WLAN=y +# CONFIG_USB_ZD1201 is not set +# CONFIG_USB_NET_RNDIS_WLAN is not set +# CONFIG_WIFI_CONTROL_FUNC is not set +# CONFIG_ATH_CARDS is not set +# CONFIG_BRCMFMAC is not set +# CONFIG_HOSTAP is not set +# CONFIG_LIBERTAS is not set +# CONFIG_WL_TI is not set +# CONFIG_MWIFIEX is not set + +# +# Enable WiMAX (Networking options) to see the WiMAX drivers +# +# CONFIG_WAN is not set +# CONFIG_ISDN is not set + +# +# Input device support +# +CONFIG_INPUT=y +# CONFIG_INPUT_FF_MEMLESS is not set +# CONFIG_INPUT_POLLDEV is not set +# CONFIG_INPUT_SPARSEKMAP is not set +# CONFIG_INPUT_MATRIXKMAP is not set + +# +# Userland interfaces +# +# CONFIG_INPUT_MOUSEDEV is not set +# CONFIG_INPUT_JOYDEV is not set +CONFIG_INPUT_EVDEV=y +# CONFIG_INPUT_EVBUG is not set +# CONFIG_INPUT_KEYRESET is not set +# CONFIG_INPUT_KEYCOMBO is not set + +# +# Input Device Drivers +# +CONFIG_INPUT_KEYBOARD=y +# CONFIG_MTK_KEYRESET is not set +# CONFIG_KEYBOARD_ADP5588 is not set +# CONFIG_KEYBOARD_ADP5589 is not set +CONFIG_KEYBOARD_ATKBD=y +# CONFIG_KEYBOARD_QT1070 is not set +# CONFIG_KEYBOARD_QT2160 is not set +# CONFIG_KEYBOARD_LKKBD is not set +CONFIG_KEYBOARD_GPIO=y +# CONFIG_KEYBOARD_GPIO_POLLED is not set +# CONFIG_KEYBOARD_TCA6416 is not set +# CONFIG_KEYBOARD_TCA8418 is not set +# CONFIG_KEYBOARD_MATRIX is not set +# CONFIG_KEYBOARD_LM8323 is not set +# CONFIG_KEYBOARD_LM8333 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_OPENCORES is not set +# CONFIG_KEYBOARD_SAMSUNG is not set +# CONFIG_KEYBOARD_STOWAWAY is not set +# CONFIG_KEYBOARD_SUNKBD is not set +# CONFIG_KEYBOARD_OMAP4 is not set +# CONFIG_KEYBOARD_XTKBD is not set +# CONFIG_KEYBOARD_CAP1106 is not set +# CONFIG_INPUT_MOUSE is not set +# CONFIG_INPUT_JOYSTICK is not set +# CONFIG_INPUT_TABLET is not set +# CONFIG_INPUT_TOUCHSCREEN is not set +CONFIG_KEYBOARD_MTK=y +# CONFIG_KEYBOARD_HID is not set +# CONFIG_ONEKEY_REBOOT_NORMAL_MODE is not set +# CONFIG_TWOKEY_REBOOT_NORMAL_MODE is not set +# CONFIG_ONEKEY_REBOOT_OTHER_MODE is not set +# CONFIG_TWOKEY_REBOOT_OTHER_MODE is not set +CONFIG_KPD_PMIC_LPRST_TD=1 +# CONFIG_KPD_PWRKEY_USE_EINT is not set +CONFIG_KPD_PWRKEY_USE_PMIC=y +# CONFIG_MTK_MRDUMP_KEY is not set +# CONFIG_KPD_VOLUME_KEY_SWAP is not set +CONFIG_INPUT_MISC=y +# CONFIG_INPUT_AD714X is not set +# CONFIG_INPUT_BMA150 is not set +# CONFIG_INPUT_MMA8450 is not set +# CONFIG_INPUT_MPU3050 is not set +# CONFIG_INPUT_GP2A is not set +# CONFIG_INPUT_GPIO_BEEPER is not set +# CONFIG_INPUT_GPIO_TILT_POLLED is not set +# CONFIG_INPUT_ATI_REMOTE2 is not set +# CONFIG_INPUT_KEYCHORD is not set +# CONFIG_INPUT_KEYSPAN_REMOTE is not set +# CONFIG_INPUT_KXTJ9 is not set +# CONFIG_INPUT_POWERMATE is not set +# CONFIG_INPUT_YEALINK is not set +# CONFIG_INPUT_CM109 is not set +CONFIG_INPUT_UINPUT=y +# CONFIG_INPUT_GPIO is not set +# CONFIG_INPUT_PCF8574 is not set +# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set +# CONFIG_INPUT_ADXL34X is not set +# CONFIG_INPUT_IMS_PCU is not set +# CONFIG_INPUT_CMA3000 is not set +# CONFIG_INPUT_SOC_BUTTON_ARRAY is not set +# CONFIG_INPUT_DRV260X_HAPTICS is not set +# CONFIG_INPUT_DRV2667_HAPTICS is not set +CONFIG_INPUT_TEMPERATURE_TMP103=y +# CONFIG_INPUT_HALL_BU520 is not set +# CONFIG_MTK_FINGERPRINT is not set + +# +# Hardware I/O ports +# +CONFIG_SERIO=y +CONFIG_SERIO_SERPORT=y +# CONFIG_SERIO_AMBAKMI is not set +CONFIG_SERIO_LIBPS2=y +# CONFIG_SERIO_RAW is not set +# CONFIG_SERIO_ALTERA_PS2 is not set +# CONFIG_SERIO_PS2MULT is not set +# CONFIG_SERIO_ARC_PS2 is not set +# CONFIG_SERIO_APBPS2 is not set +# CONFIG_GAMEPORT is not set + +# +# Character devices +# +CONFIG_TTY=y +# CONFIG_VT is not set +CONFIG_UNIX98_PTYS=y +CONFIG_DEVPTS_MULTIPLE_INSTANCES=y +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=16 +# CONFIG_SERIAL_NONSTANDARD is not set +# CONFIG_N_GSM is not set +# CONFIG_TRACE_SINK is not set +# CONFIG_DEVMEM is not set +# CONFIG_DEVKMEM is not set + +# +# Serial drivers +# +CONFIG_SERIAL_EARLYCON=y +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_DEPRECATED_OPTIONS=y +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_NR_UARTS=4 +CONFIG_SERIAL_8250_RUNTIME_UARTS=4 +# CONFIG_SERIAL_8250_EXTENDED is not set +# CONFIG_SERIAL_8250_DW is not set +# CONFIG_SERIAL_8250_EM is not set +# CONFIG_SERIAL_8250_MT6577 is not set + +# +# Non-8250 serial port support +# +# CONFIG_SERIAL_AMBA_PL010 is not set +# CONFIG_SERIAL_AMBA_PL011 is not set +# CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set +# CONFIG_SERIAL_MAX3100 is not set +# CONFIG_SERIAL_MAX310X is not set +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +# CONFIG_SERIAL_OF_PLATFORM is not set +# CONFIG_SERIAL_SCCNXP is not set +# CONFIG_SERIAL_SC16IS7XX is not set +# CONFIG_SERIAL_ALTERA_JTAGUART is not set +# CONFIG_SERIAL_ALTERA_UART is not set +# CONFIG_SERIAL_IFX6X60 is not set +# CONFIG_SERIAL_XILINX_PS_UART is not set +# CONFIG_SERIAL_ARC is not set +# CONFIG_SERIAL_FSL_LPUART is not set +# CONFIG_SERIAL_ST_ASC is not set +# CONFIG_TTY_PRINTK is not set +# CONFIG_HVC_DCC is not set +# CONFIG_IPMI_HANDLER is not set +# CONFIG_HW_RANDOM is not set +# CONFIG_R3964 is not set +# CONFIG_RAW_DRIVER is not set +# CONFIG_TCG_TPM is not set +# CONFIG_DCC_TTY is not set +# CONFIG_XILLYBUS is not set + +# +# I2C support +# +CONFIG_I2C=y +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_COMPAT=y +CONFIG_I2C_CHARDEV=y +# CONFIG_I2C_MUX is not set +CONFIG_I2C_HELPER_AUTO=y + +# +# I2C Hardware Bus support +# + +# +# I2C system bus drivers (mostly embedded / system-on-chip) +# +# CONFIG_I2C_CBUS_GPIO is not set +# CONFIG_I2C_DESIGNWARE_PLATFORM is not set +# CONFIG_I2C_GPIO is not set +CONFIG_I2C_MT65XX=y +# CONFIG_I2C_NOMADIK is not set +# CONFIG_I2C_OCORES is not set +# CONFIG_I2C_PCA_PLATFORM is not set +# CONFIG_I2C_PXA_PCI is not set +# CONFIG_I2C_RK3X is not set +# CONFIG_I2C_SIMTEC is not set +# CONFIG_I2C_XILINX is not set + +# +# External I2C/SMBus adapter drivers +# +# CONFIG_I2C_DIOLAN_U2C is not set +# CONFIG_I2C_PARPORT_LIGHT is not set +# CONFIG_I2C_ROBOTFUZZ_OSIF is not set +# CONFIG_I2C_TAOS_EVM is not set +# CONFIG_I2C_TINY_USB is not set + +# +# Other I2C/SMBus bus drivers +# +# CONFIG_I2C_STUB is not set +# CONFIG_I2C_DEBUG_CORE is not set +# CONFIG_I2C_DEBUG_ALGO is not set +# CONFIG_I2C_DEBUG_BUS is not set +CONFIG_SPI=y +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_MASTER=y + +# +# SPI Master Controller Drivers +# +# CONFIG_SPI_ALTERA is not set +# CONFIG_SPI_BITBANG is not set +# CONFIG_SPI_CADENCE is not set +# CONFIG_SPI_GPIO is not set +# CONFIG_SPI_FSL_SPI is not set +CONFIG_SPI_MT65XX=y +# CONFIG_SPI_OC_TINY is not set +# CONFIG_SPI_PL022 is not set +# CONFIG_SPI_PXA2XX_PCI is not set +# CONFIG_SPI_ROCKCHIP is not set +# CONFIG_SPI_SC18IS602 is not set +# CONFIG_SPI_XCOMM is not set +# CONFIG_SPI_XILINX is not set +# CONFIG_SPI_DESIGNWARE is not set + +# +# SPI Protocol Masters +# +CONFIG_SPI_SPIDEV=y +# CONFIG_SPI_TLE62X0 is not set +# CONFIG_MTK_SPI is not set +# CONFIG_SPMI is not set +# CONFIG_HSI is not set + +# +# PPS support +# +# CONFIG_PPS is not set + +# +# PPS generators support +# + +# +# PTP clock support +# +# CONFIG_PTP_1588_CLOCK is not set + +# +# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks. +# +CONFIG_PINCTRL=y + +# +# Pin controllers +# +CONFIG_PINMUX=y +CONFIG_PINCONF=y +CONFIG_GENERIC_PINCONF=y +# CONFIG_DEBUG_PINCTRL is not set +# CONFIG_PINCTRL_SINGLE is not set +CONFIG_PINCTRL_MTK_COMMON=y +# CONFIG_PINCTRL_MT6735 is not set +# CONFIG_PINCTRL_MT6580 is not set +# CONFIG_PINCTRL_MT6755 is not set +# CONFIG_PINCTRL_MT2701 is not set +CONFIG_PINCTRL_MT8163=y +# CONFIG_PINCTRL_MT8173 is not set +# CONFIG_PINCTRL_MT6397 is not set +CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +CONFIG_ARCH_REQUIRE_GPIOLIB=y +CONFIG_GPIOLIB=y +CONFIG_GPIO_DEVRES=y +CONFIG_OF_GPIO=y +# CONFIG_DEBUG_GPIO is not set +CONFIG_GPIO_SYSFS=y + +# +# Memory mapped GPIO drivers: +# +# CONFIG_GPIO_GENERIC_PLATFORM is not set +# CONFIG_GPIO_DWAPB is not set +# CONFIG_GPIO_EM is not set +# CONFIG_GPIO_ZEVIO is not set +# CONFIG_GPIO_PL061 is not set +# CONFIG_GPIO_SCH311X is not set +# CONFIG_GPIO_SYSCON is not set +# CONFIG_GPIO_GRGPIO is not set + +# +# I2C GPIO expanders: +# +# CONFIG_GPIO_MAX7300 is not set +# CONFIG_GPIO_MAX732X is not set +# CONFIG_GPIO_PCA953X is not set +# CONFIG_GPIO_PCF857X is not set +# CONFIG_GPIO_SX150X is not set +# CONFIG_GPIO_ADP5588 is not set +# CONFIG_GPIO_ADNP is not set + +# +# PCI GPIO expanders: +# + +# +# SPI GPIO expanders: +# +# CONFIG_GPIO_MAX7301 is not set +# CONFIG_GPIO_MCP23S08 is not set +# CONFIG_GPIO_MC33880 is not set +# CONFIG_GPIO_74X164 is not set + +# +# AC97 GPIO expanders: +# + +# +# LPC GPIO expanders: +# + +# +# MODULbus GPIO expanders: +# + +# +# USB GPIO expanders: +# +# CONFIG_W1 is not set +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +# CONFIG_PDA_POWER is not set +# CONFIG_GENERIC_ADC_BATTERY is not set +# CONFIG_TEST_POWER is not set +# CONFIG_BATTERY_DS2780 is not set +# CONFIG_BATTERY_DS2781 is not set +# CONFIG_BATTERY_DS2782 is not set +# CONFIG_BATTERY_SBS is not set +# CONFIG_BATTERY_BQ27x00 is not set +# CONFIG_BATTERY_MAX17040 is not set +# CONFIG_BATTERY_MAX17042 is not set +# CONFIG_CHARGER_ISP1704 is not set +# CONFIG_CHARGER_MAX8903 is not set +# CONFIG_CHARGER_LP8727 is not set +# CONFIG_CHARGER_GPIO is not set +# CONFIG_CHARGER_MANAGER is not set +# CONFIG_CHARGER_BQ2415X is not set +# CONFIG_CHARGER_BQ24190 is not set +# CONFIG_CHARGER_BQ24735 is not set +# CONFIG_CHARGER_SMB347 is not set +# CONFIG_DUMMY_AC is not set +CONFIG_POWER_RESET=y +# 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_LTC2952 is not set +# CONFIG_POWER_RESET_RESTART is not set +# CONFIG_POWER_RESET_VERSATILE is not set +# CONFIG_POWER_RESET_SYSCON is not set +# CONFIG_POWER_AVS is not set +# CONFIG_MEDIATEK_CHARGING_SOLUTION is not set +# CONFIG_MTK_SMART_BATTERY is not set +CONFIG_POWER_EXT=y +# CONFIG_MTK_AUTO_POWER_ON_WITH_CHARGER is not set +# CONFIG_POWER_ON_OFF_LOOP_TEST is not set +# CONFIG_MTK_MULTI_BAT_PROFILE_SUPPORT is not set +# CONFIG_MTK_SWCHR_SUPPORT is not set +# CONFIG_MTK_BQ24160_SUPPORT is not set +# CONFIG_MTK_BQ24196_SUPPORT is not set +# CONFIG_MTK_BQ24296_SUPPORT is not set +# CONFIG_MTK_NCP1854_SUPPORT is not set +# CONFIG_MTK_BQ24297_SUPPORT is not set +# CONFIG_MTK_INTERNAL_CHARGER_SUPPORT is not set +# CONFIG_MTK_DISABLE_POWER_ON_OFF_VOLTAGE_LIMITATION is not set +# CONFIG_MTK_KERNEL_POWER_OFF_CHARGING is not set +# CONFIG_MTK_BATTERY_PROTECT is not set +# CONFIG_MTK_BATTERY_THROTTLING is not set +# CONFIG_MTK_ENABLE_AGING_ALGORITHM is not set +# CONFIG_MTK_BATTERY_LIFETIME_DATA_SUPPORT is not set +# CONFIG_MTK_BATTERY_CVR_SUPPORT is not set +# CONFIG_SOC_BY_HW_FG is not set +# CONFIG_SOC_BY_AUXADC is not set +# CONFIG_SOC_BY_SW_FG is not set +# CONFIG_SWCHR_POWER_PATH is not set +# CONFIG_CUSTOM_BATTERY_CYCLE_AGING_DATA is not set +# CONFIG_MTK_JEITA_STANDARD_SUPPORT is not set +# CONFIG_BAT_LOW_TEMP_PROTECT_ENABLE is not set +# CONFIG_STOP_CHARGING_IN_TAKLING is not set +# CONFIG_DIS_CHECK_BATTERY is not set +# CONFIG_CONFIG_USB_IF is not set +# CONFIG_HIGH_BATTERY_VOLTAGE_SUPPORT is not set +# CONFIG_MTK_PUMP_EXPRESS_SUPPORT is not set +# CONFIG_MTK_PUMP_EXPRESS_PLUS_SUPPORT is not set +# CONFIG_HWMON is not set +CONFIG_THERMAL=y +CONFIG_THERMAL_OF=y +CONFIG_THERMAL_DEFAULT_GOV_BACKWARD_COMPATIBLE=y +# CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE is not set +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +# CONFIG_THERMAL_DEFAULT_GOV_TMP103 is not set +CONFIG_THERMAL_BACKWARD_COMPATIBLE=y +# CONFIG_THERMAL_GOV_FAIR_SHARE is not set +# CONFIG_THERMAL_GOV_STEP_WISE is not set +# CONFIG_THERMAL_GOV_TRIP_STEP_WISE is not set +# CONFIG_THERMAL_GOV_BANG_BANG is not set +# CONFIG_THERMAL_GOV_USER_SPACE is not set +CONFIG_THERMAL_GOV_TMP103=y +CONFIG_CPU_THERMAL=y +# CONFIG_THERMAL_EMULATION is not set +# CONFIG_IMX_THERMAL is not set +CONFIG_TMP103_THERMAL=y + +# +# Texas Instruments thermal drivers +# +# CONFIG_MTK_TMP103_SUPPORT is not set + +# +# Trusty +# +# CONFIG_TRUSTY is not set +# CONFIG_MT_TRUSTY_DEBUGFS is not set +CONFIG_WATCHDOG=y +# CONFIG_WATCHDOG_CORE is not set +# CONFIG_WATCHDOG_NOWAYOUT is not set + +# +# Watchdog Device Drivers +# +# CONFIG_SOFT_WATCHDOG is not set +# CONFIG_GPIO_WATCHDOG is not set +# CONFIG_XILINX_WATCHDOG is not set +# CONFIG_ARM_SP805_WATCHDOG is not set +# CONFIG_CADENCE_WATCHDOG is not set +# CONFIG_DW_WATCHDOG is not set +# CONFIG_MAX63XX_WATCHDOG is not set +# CONFIG_MEN_A21_WDT is not set + +# +# USB-based Watchdog Cards +# +# CONFIG_USBPCWATCHDOG is not set +CONFIG_MTK_WATCHDOG=y +CONFIG_MTK_WATCHDOG_COMMON=y +CONFIG_MTK_WD_KICKER=y +CONFIG_SSB_POSSIBLE=y + +# +# Sonics Silicon Backplane +# +# CONFIG_SSB is not set +CONFIG_BCMA_POSSIBLE=y + +# +# Broadcom specific AMBA +# +# CONFIG_BCMA is not set + +# +# Multifunction device drivers +# +CONFIG_MFD_CORE=y +# CONFIG_MFD_AS3711 is not set +# CONFIG_MFD_AS3722 is not set +# CONFIG_PMIC_ADP5520 is not set +# CONFIG_MFD_AAT2870_CORE is not set +# CONFIG_MFD_BCM590XX is not set +# CONFIG_MFD_AXP20X is not set +# CONFIG_MFD_CROS_EC is not set +# CONFIG_MFD_ASIC3 is not set +# CONFIG_PMIC_DA903X is not set +# CONFIG_MFD_DA9052_SPI is not set +# CONFIG_MFD_DA9052_I2C is not set +# CONFIG_MFD_DA9055 is not set +# CONFIG_MFD_DA9063 is not set +# CONFIG_MFD_MC13XXX_SPI is not set +# CONFIG_MFD_MC13XXX_I2C is not set +# CONFIG_MFD_HI6421_PMIC is not set +# CONFIG_HTC_EGPIO is not set +# CONFIG_HTC_PASIC3 is not set +# CONFIG_HTC_I2CPLD is not set +# CONFIG_INTEL_SOC_PMIC is not set +# CONFIG_MFD_KEMPLD is not set +# CONFIG_MFD_88PM800 is not set +# CONFIG_MFD_88PM805 is not set +# CONFIG_MFD_88PM860X is not set +# CONFIG_MFD_MAX14577 is not set +# CONFIG_MFD_MAX77686 is not set +# CONFIG_MFD_MAX77693 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_MT6323=y +# CONFIG_MFD_MT6397 is not set +# CONFIG_MFD_MENF21BMC is not set +# CONFIG_EZX_PCAP is not set +# CONFIG_MFD_VIPERBOARD is not set +# CONFIG_MFD_RETU is not set +# CONFIG_MFD_PCF50633 is not set +# CONFIG_MFD_PM8921_CORE is not set +# CONFIG_MFD_RTSX_USB is not set +# CONFIG_MFD_RC5T583 is not set +# CONFIG_MFD_RK808 is not set +# CONFIG_MFD_RN5T618 is not set +# CONFIG_MFD_SEC_CORE is not set +# CONFIG_MFD_SI476X_CORE is not set +# CONFIG_MFD_SM501 is not set +# CONFIG_MFD_SMSC is not set +# CONFIG_ABX500_CORE is not set +# CONFIG_MFD_STMPE is not set +CONFIG_MFD_SYSCON=y +# CONFIG_MFD_TI_AM335X_TSCADC is not set +# CONFIG_MFD_LP3943 is not set +# CONFIG_MFD_LP8788 is not set +# CONFIG_MFD_PALMAS is not set +# CONFIG_TPS6105X is not set +# CONFIG_TPS65010 is not set +# CONFIG_TPS6507X 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_TPS80031 is not set +# CONFIG_TWL4030_CORE is not set +# CONFIG_TWL6040_CORE is not set +# CONFIG_MFD_WL1273_CORE is not set +# CONFIG_MFD_LM3533 is not set +# CONFIG_MFD_TC3589X is not set +# CONFIG_MFD_TMIO is not set +# CONFIG_MFD_T7L66XB is not set +# CONFIG_MFD_TC6387XB is not set +# CONFIG_MFD_TC6393XB is not set +# CONFIG_MFD_ARIZONA_I2C is not set +# CONFIG_MFD_ARIZONA_SPI is not set +# CONFIG_MFD_WM8400 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_WM8994 is not set +CONFIG_REGULATOR=y +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_FIXED_VOLTAGE is not set +# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set +# CONFIG_REGULATOR_ACT8865 is not set +# CONFIG_REGULATOR_AD5398 is not set +# CONFIG_REGULATOR_ANATOP is not set +# CONFIG_REGULATOR_DA9210 is not set +# CONFIG_REGULATOR_DA9211 is not set +# CONFIG_REGULATOR_DA9212 is not set +# CONFIG_REGULATOR_FAN53555 is not set +# CONFIG_REGULATOR_GPIO is not set +# CONFIG_REGULATOR_ISL9305 is not set +# CONFIG_REGULATOR_ISL6271A 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_MAX1586 is not set +# CONFIG_REGULATOR_MAX8649 is not set +# CONFIG_REGULATOR_MAX8660 is not set +# CONFIG_REGULATOR_MAX8952 is not set +# CONFIG_REGULATOR_MAX8973 is not set +CONFIG_REGULATOR_MT6323=y +# CONFIG_REGULATOR_PFUZE100 is not set +CONFIG_REGULATOR_SYM827=y +# CONFIG_REGULATOR_TPS51632 is not set +# CONFIG_REGULATOR_TPS62360 is not set +# CONFIG_REGULATOR_TPS65023 is not set +# CONFIG_REGULATOR_TPS6507X is not set +# CONFIG_REGULATOR_TPS6524X is not set +CONFIG_MEDIA_SUPPORT=y + +# +# Multimedia core support +# +# CONFIG_MEDIA_CAMERA_SUPPORT is not set +# CONFIG_MEDIA_ANALOG_TV_SUPPORT is not set +# CONFIG_MEDIA_DIGITAL_TV_SUPPORT is not set +# CONFIG_MEDIA_RADIO_SUPPORT is not set +# CONFIG_MEDIA_SDR_SUPPORT is not set +CONFIG_MEDIA_RC_SUPPORT=y +# CONFIG_VIDEO_ADV_DEBUG is not set +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +# CONFIG_TTPCI_EEPROM is not set + +# +# Media drivers +# +CONFIG_RC_CORE=y +# CONFIG_RC_MAP is not set +CONFIG_RC_DECODERS=y +CONFIG_LIRC=y +# CONFIG_IR_LIRC_CODEC 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_JVC_DECODER is not set +# CONFIG_IR_SONY_DECODER is not set +# CONFIG_IR_SANYO_DECODER is not set +CONFIG_IR_SHARP_DECODER=y +# CONFIG_IR_MCE_KBD_DECODER is not set +CONFIG_IR_XMP_DECODER=y +# CONFIG_RC_DEVICES is not set +# CONFIG_MEDIA_USB_SUPPORT is not set + +# +# Supported MMC/SDIO adapters +# +# CONFIG_CYPRESS_FIRMWARE is not set + +# +# Media ancillary drivers (tuners, sensors, i2c, frontends) +# + +# +# Customise DVB Frontends +# +CONFIG_DVB_TUNER_DIB0070=m +CONFIG_DVB_TUNER_DIB0090=m + +# +# Tools to develop new frontends +# +# CONFIG_DVB_DUMMY_FE is not set + +# +# Graphics support +# +# CONFIG_IMX_IPUV3_CORE is not set + +# +# Direct Rendering Manager +# +# CONFIG_DRM is not set + +# +# Frame buffer Devices +# +# CONFIG_FB is not set +# CONFIG_BACKLIGHT_LCD_SUPPORT is not set +# CONFIG_ADF is not set +# CONFIG_VGASTATE is not set +CONFIG_SOUND=y +CONFIG_SOUND_OSS_CORE=y +CONFIG_SOUND_OSS_CORE_PRECLAIM=y +CONFIG_SND=y +CONFIG_SND_TIMER=y +CONFIG_SND_PCM=y +CONFIG_SND_HWDEP=y +CONFIG_SND_RAWMIDI=y +CONFIG_SND_COMPRESS_OFFLOAD=y +CONFIG_SND_JACK=y +CONFIG_SND_SEQUENCER=y +CONFIG_SND_SEQ_DUMMY=y +CONFIG_SND_OSSEMUL=y +CONFIG_SND_MIXER_OSS=y +CONFIG_SND_PCM_OSS=y +CONFIG_SND_PCM_OSS_PLUGINS=y +CONFIG_SND_SEQUENCER_OSS=y +CONFIG_SND_HRTIMER=y +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_DYNAMIC_MINORS=y +CONFIG_SND_MAX_CARDS=32 +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_VERBOSE_PROCFS=y +CONFIG_SND_VERBOSE_PRINTK=y +# CONFIG_SND_DEBUG is not set +CONFIG_SND_RAWMIDI_SEQ=y +# CONFIG_SND_OPL3_LIB_SEQ is not set +# CONFIG_SND_OPL4_LIB_SEQ is not set +# CONFIG_SND_SBAWE_SEQ is not set +# CONFIG_SND_EMU10K1_SEQ is not set +CONFIG_SND_DRIVERS=y +# CONFIG_SND_DUMMY is not set +# CONFIG_SND_ALOOP is not set +# CONFIG_SND_VIRMIDI is not set +# CONFIG_SND_MTPAV is not set +# CONFIG_SND_SERIAL_U16550 is not set +# CONFIG_SND_MPU401 is not set + +# +# HD-Audio +# +CONFIG_SND_ARM=y +# CONFIG_SND_ARMAACI is not set +# CONFIG_SND_SPI is not set +CONFIG_SND_USB=y +CONFIG_SND_USB_AUDIO=y +# CONFIG_SND_USB_UA101 is not set +# CONFIG_SND_USB_CAIAQ is not set +# CONFIG_SND_USB_6FIRE is not set +# CONFIG_SND_USB_HIFACE is not set +# CONFIG_SND_BCD2000 is not set +CONFIG_SND_SOC=y +# CONFIG_SND_ATMEL_SOC is not set +# CONFIG_SND_DESIGNWARE_I2S is not set + +# +# SoC Audio for Freescale CPUs +# + +# +# Common SoC Audio options for Freescale CPUs: +# +# CONFIG_SND_SOC_FSL_ASRC is not set +# CONFIG_SND_SOC_FSL_SAI is not set +# CONFIG_SND_SOC_FSL_SSI is not set +# CONFIG_SND_SOC_FSL_SPDIF is not set +# CONFIG_SND_SOC_FSL_ESAI is not set +# CONFIG_SND_SOC_IMX_AUDMUX is not set +# CONFIG_MT_SND_SOC_V1 is not set +# CONFIG_MT_SND_SOC_V2 is not set +# CONFIG_MT_SND_SOC_V3 is not set +# CONFIG_MT_SND_SOC_6580 is not set +# CONFIG_MT_SND_SOC_6755 is not set +# CONFIG_MT_SND_SOC_8163 is not set +CONFIG_MT_SND_SOC_8163_AMZN=y +# CONFIG_SND_I2S_MCLK is not set +CONFIG_SND_SOC_8_MICS=y +# CONFIG_MTK_SPEAKER is not set +# CONFIG_MTK_NXP_TFA9890 is not set +# CONFIG_SND_SOC_MT2701_EVB is not set +# CONFIG_MTK_ALIGN_24BIT_DATA_8BIT_0 is not set +# CONFIG_SND_SOC_MT2701_RT5640 is not set +# CONFIG_MTK_16BIT_IN_24BIT_OUT is not set +# CONFIG_SND_BT_SCO_I2S is not set +# CONFIG_MTK_AUDIO_USE_SHARED_SRAM is not set +CONFIG_SND_SOC_I2C_AND_SPI=y + +# +# CODEC drivers +# +# CONFIG_SND_SOC_ADAU1701 is not set +# CONFIG_SND_SOC_AK4104 is not set +# CONFIG_SND_SOC_AK4554 is not set +# CONFIG_SND_SOC_AK4642 is not set +# CONFIG_SND_SOC_AK5386 is not set +# CONFIG_SND_SOC_ALC5623 is not set +# CONFIG_SND_SOC_CS35L32 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_CS4265 is not set +# CONFIG_SND_SOC_CS4270 is not set +# CONFIG_SND_SOC_CS4271 is not set +# CONFIG_SND_SOC_CS42XX8_I2C is not set +# CONFIG_SND_SOC_HDMI_CODEC is not set +# CONFIG_SND_SOC_ES8328 is not set +# CONFIG_SND_SOC_PCM1681 is not set +# CONFIG_SND_SOC_PCM1792A is not set +# CONFIG_SND_SOC_PCM512x_I2C is not set +# CONFIG_SND_SOC_PCM512x_SPI is not set +# CONFIG_SND_SOC_SGTL5000 is not set +# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set +# CONFIG_SND_SOC_SPDIF is not set +# CONFIG_SND_SOC_SSM2602_SPI is not set +# CONFIG_SND_SOC_SSM2602_I2C is not set +# CONFIG_SND_SOC_SSM4567 is not set +# CONFIG_SND_SOC_STA350 is not set +# CONFIG_SND_SOC_TAS2552 is not set +# CONFIG_SND_SOC_TAS5086 is not set +# CONFIG_SND_SOC_TLV320AIC31XX is not set +CONFIG_SND_SOC_TLV320AIC3101=y +CONFIG_SND_SOC_TLV320AIC32X4=y +# CONFIG_SND_SOC_TLV320AIC3X is not set +# CONFIG_SND_SOC_WM8510 is not set +# CONFIG_SND_SOC_WM8523 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_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_WM8804 is not set +# CONFIG_SND_SOC_WM8903 is not set +# CONFIG_SND_SOC_WM8962 is not set +# CONFIG_SND_SOC_WM8978 is not set +# CONFIG_SND_SOC_TPA6130A2 is not set +CONFIG_SND_SIMPLE_CARD=y +CONFIG_SOUND_PRIME=y + +# +# HID support +# +CONFIG_HID=y +# CONFIG_HID_BATTERY_STRENGTH is not set +CONFIG_HIDRAW=y +CONFIG_UHID=y +CONFIG_HID_GENERIC=y + +# +# Special HID drivers +# +CONFIG_HID_A4TECH=y +# CONFIG_HID_ACRUX is not set +CONFIG_HID_AMAZON_ASPEN=y +CONFIG_HID_AMAZON_MAGNETO=y +CONFIG_HID_APPLE=y +# CONFIG_HID_APPLEIR is not set +# CONFIG_HID_AUREAL is not set +CONFIG_HID_BELKIN=y +CONFIG_HID_CHERRY=y +CONFIG_HID_CHICONY=y +# CONFIG_HID_PRODIKEYS is not set +# CONFIG_HID_CP2112 is not set +CONFIG_HID_CYPRESS=y +CONFIG_HID_DRAGONRISE=y +# CONFIG_DRAGONRISE_FF is not set +# CONFIG_HID_EMS_FF is not set +# CONFIG_HID_ELECOM is not set +# CONFIG_HID_ELO is not set +CONFIG_HID_EZKEY=y +# CONFIG_HID_HOLTEK is not set +# CONFIG_HID_GT683R is not set +# CONFIG_HID_HUION is not set +# CONFIG_HID_KEYTOUCH is not set +CONFIG_HID_KYE=y +# CONFIG_HID_UCLOGIC is not set +# CONFIG_HID_WALTOP is not set +CONFIG_HID_GYRATION=y +# CONFIG_HID_ICADE is not set +CONFIG_HID_TWINHAN=y +CONFIG_HID_KENSINGTON=y +# CONFIG_HID_LCPOWER is not set +# CONFIG_HID_LENOVO is not set +CONFIG_HID_LOGITECH=y +# CONFIG_HID_LOGITECH_DJ is not set +# CONFIG_HID_LOGITECH_HIDPP is not set +# CONFIG_LOGITECH_FF is not set +# CONFIG_LOGIRUMBLEPAD2_FF is not set +# CONFIG_LOGIG940_FF is not set +# CONFIG_LOGIWHEELS_FF is not set +CONFIG_HID_MAGICMOUSE=y +CONFIG_HID_MICROSOFT=y +CONFIG_HID_MONTEREY=y +# CONFIG_HID_MULTITOUCH is not set +# CONFIG_HID_NTRIG is not set +# CONFIG_HID_ORTEK is not set +CONFIG_HID_PANTHERLORD=y +# CONFIG_PANTHERLORD_FF is not set +# CONFIG_HID_PENMOUNT is not set +CONFIG_HID_PETALYNX=y +# CONFIG_HID_PICOLCD is not set +# CONFIG_HID_PRIMAX is not set +# CONFIG_HID_ROCCAT is not set +# CONFIG_HID_SAITEK is not set +CONFIG_HID_SAMSUNG=y +# CONFIG_HID_SONY is not set +# CONFIG_HID_SPEEDLINK is not set +# CONFIG_HID_STEELSERIES is not set +CONFIG_HID_SUNPLUS=y +# CONFIG_HID_RMI is not set +CONFIG_HID_GREENASIA=y +# CONFIG_GREENASIA_FF is not set +CONFIG_HID_SMARTJOYPLUS=y +# CONFIG_SMARTJOYPLUS_FF is not set +# CONFIG_HID_TIVO is not set +CONFIG_HID_TOPSEED=y +# CONFIG_HID_THINGM is not set +CONFIG_HID_THRUSTMASTER=y +# CONFIG_THRUSTMASTER_FF is not set +# CONFIG_HID_WACOM is not set +# CONFIG_HID_WIIMOTE is not set +# CONFIG_HID_XINMO is not set +CONFIG_HID_ZEROPLUS=y +# CONFIG_ZEROPLUS_FF is not set +# CONFIG_HID_ZYDACRON is not set +# CONFIG_HID_SENSOR_HUB is not set +CONFIG_HID_LAB126=y + +# +# USB HID support +# +CONFIG_USB_HID=y +# CONFIG_HID_PID is not set +# CONFIG_USB_HIDDEV is not set + +# +# I2C HID support +# +# CONFIG_I2C_HID is not set +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +CONFIG_USB_SUPPORT=y +CONFIG_USB_COMMON=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB=y +# CONFIG_USB_ANNOUNCE_NEW_DEVICES is not set + +# +# Miscellaneous USB options +# +CONFIG_USB_DEFAULT_PERSIST=y +# CONFIG_USB_DYNAMIC_MINORS is not set +# CONFIG_USB_OTG is not set +# CONFIG_USB_OTG_WHITELIST is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +# CONFIG_USB_OTG_FSM is not set +# CONFIG_USB_MON is not set +# CONFIG_USB_WUSB_CBAF is not set + +# +# USB Host Controller Drivers +# +# CONFIG_USB_C67X00_HCD is not set +# CONFIG_USB_XHCI_HCD is not set +# CONFIG_USB_EHCI_HCD is not set +# CONFIG_USB_OXU210HP_HCD is not set +# CONFIG_USB_ISP116X_HCD is not set +# CONFIG_USB_ISP1760_HCD is not set +# CONFIG_USB_ISP1362_HCD is not set +# CONFIG_USB_FUSBH200_HCD is not set +# CONFIG_USB_FOTG210_HCD is not set +# CONFIG_USB_MAX3421_HCD is not set +# CONFIG_USB_OHCI_HCD is not set +# CONFIG_USB_SL811_HCD is not set +# CONFIG_USB_R8A66597_HCD is not set +# CONFIG_USB_HCD_TEST_MODE is not set + +# +# USB Device Class drivers +# +# CONFIG_USB_ACM is not set +# CONFIG_USB_PRINTER is not set +# CONFIG_USB_WDM is not set +# CONFIG_USB_TMC is not set + +# +# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may +# + +# +# also be needed; see USB_STORAGE Help for more info +# +CONFIG_USB_STORAGE=y +# CONFIG_USB_STORAGE_DEBUG is not set +# CONFIG_USB_STORAGE_REALTEK is not set +CONFIG_USB_STORAGE_DATAFAB=y +CONFIG_USB_STORAGE_FREECOM=y +CONFIG_USB_STORAGE_ISD200=y +CONFIG_USB_STORAGE_USBAT=y +CONFIG_USB_STORAGE_SDDR09=y +CONFIG_USB_STORAGE_SDDR55=y +CONFIG_USB_STORAGE_JUMPSHOT=y +CONFIG_USB_STORAGE_ALAUDA=y +CONFIG_USB_STORAGE_ONETOUCH=y +CONFIG_USB_STORAGE_KARMA=y +CONFIG_USB_STORAGE_CYPRESS_ATACB=y +# CONFIG_USB_STORAGE_ENE_UB6250 is not set +# CONFIG_USB_UAS is not set + +# +# USB Imaging devices +# +# CONFIG_USB_MDC800 is not set +# CONFIG_USB_MICROTEK is not set +# CONFIG_USBIP_CORE is not set +# CONFIG_USB_MUSB_HDRC is not set +# CONFIG_USB_DWC3 is not set +# CONFIG_USB_DWC2 is not set +# CONFIG_USB_CHIPIDEA is not set + +# +# USB port drivers +# +CONFIG_USB_SERIAL=y +# CONFIG_USB_SERIAL_CONSOLE is not set +# CONFIG_USB_SERIAL_GENERIC is not set +# CONFIG_USB_SERIAL_SIMPLE 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_WHITEHEAT is not set +# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set +# CONFIG_USB_SERIAL_CP210X is not set +# CONFIG_USB_SERIAL_CYPRESS_M8 is not set +# CONFIG_USB_SERIAL_EMPEG is not set +# CONFIG_USB_SERIAL_FTDI_SIO is not set +# CONFIG_USB_SERIAL_VISOR is not set +# CONFIG_USB_SERIAL_IPAQ is not set +# CONFIG_USB_SERIAL_IR is not set +# CONFIG_USB_SERIAL_EDGEPORT is not set +# CONFIG_USB_SERIAL_EDGEPORT_TI is not set +# CONFIG_USB_SERIAL_F81232 is not set +# CONFIG_USB_SERIAL_GARMIN is not set +# CONFIG_USB_SERIAL_IPW is not set +# CONFIG_USB_SERIAL_IUU is not set +# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set +# CONFIG_USB_SERIAL_KEYSPAN is not set +# 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_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_PL2303 is not set +# CONFIG_USB_SERIAL_OTI6858 is not set +# CONFIG_USB_SERIAL_QCAUX is not set +# CONFIG_USB_SERIAL_QUALCOMM is not set +# CONFIG_USB_SERIAL_SPCP8X5 is not set +# CONFIG_USB_SERIAL_SAFE is not set +# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set +# CONFIG_USB_SERIAL_SYMBOL is not set +# CONFIG_USB_SERIAL_TI is not set +# CONFIG_USB_SERIAL_CYBERJACK is not set +# CONFIG_USB_SERIAL_XIRCOM is not set +CONFIG_USB_SERIAL_WWAN=y +CONFIG_USB_SERIAL_OPTION=y +# CONFIG_USB_SERIAL_OMNINET is not set +# CONFIG_USB_SERIAL_OPTICON is not set +# CONFIG_USB_SERIAL_XSENS_MT is not set +# CONFIG_USB_SERIAL_WISHBONE is not set +# CONFIG_USB_SERIAL_SSU100 is not set +# CONFIG_USB_SERIAL_QT2 is not set +# CONFIG_USB_SERIAL_DEBUG is not set + +# +# USB Miscellaneous drivers +# +# CONFIG_USB_EMI62 is not set +# CONFIG_USB_EMI26 is not set +# CONFIG_USB_ADUTUX is not set +# CONFIG_USB_SEVSEG is not set +# CONFIG_USB_RIO500 is not set +# CONFIG_USB_LEGOTOWER is not set +# CONFIG_USB_LCD is not set +# CONFIG_USB_LED is not set +# CONFIG_USB_CYPRESS_CY7C63 is not set +# CONFIG_USB_CYTHERM is not set +# CONFIG_USB_IDMOUSE is not set +# CONFIG_USB_FTDI_ELAN is not set +# CONFIG_USB_APPLEDISPLAY is not set +# CONFIG_USB_LD is not set +CONFIG_USB_TRANCEVIBRATOR=y +# CONFIG_USB_IOWARRIOR is not set +# CONFIG_USB_TEST is not set +# CONFIG_USB_EHSET_TEST_FIXTURE is not set +# CONFIG_USB_ISIGHTFW is not set +# CONFIG_USB_YUREX is not set +# CONFIG_USB_EZUSB_FX2 is not set +# CONFIG_USB_HSIC_USB3503 is not set +# CONFIG_USB_LINK_LAYER_TEST is not set + +# +# USB Physical Layer drivers +# +CONFIG_USB_PHY=y +# CONFIG_USB_OTG_WAKELOCK is not set +CONFIG_NOP_USB_XCEIV=y +# CONFIG_AM335X_PHY_USB is not set +# CONFIG_USB_GPIO_VBUS is not set +# CONFIG_USB_ISP1301 is not set +# CONFIG_USB_ULPI is not set +CONFIG_USB_GADGET=y +# 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_VBUS_DRAW=2 +CONFIG_USB_GADGET_BUS_POWERED=y +CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2 + +# +# USB Peripheral Controller +# +# CONFIG_USB_FUSB300 is not set +# CONFIG_USB_R8A66597 is not set +# CONFIG_USB_PXA27X is not set +# CONFIG_USB_MV_U3D is not set +# CONFIG_USB_M66592 is not set +# CONFIG_USB_NET2272 is not set +# CONFIG_USB_DUMMY_HCD is not set +CONFIG_USB_LIBCOMPOSITE=y +CONFIG_USB_F_ACM=y +CONFIG_USB_U_SERIAL=y +CONFIG_USB_F_SERIAL=y +# CONFIG_USB_ZERO is not set +# CONFIG_USB_AUDIO is not set +# CONFIG_USB_ETH is not set +# CONFIG_USB_G_NCM is not set +# CONFIG_USB_GADGETFS is not set +# CONFIG_USB_FUNCTIONFS is not set +# CONFIG_USB_MASS_STORAGE is not set +# CONFIG_USB_G_SERIAL is not set +# CONFIG_USB_MIDI_GADGET is not set +# CONFIG_USB_G_PRINTER is not set +CONFIG_USB_G_ANDROID=y +# CONFIG_USB_ANDROID_RNDIS_DWORD_ALIGNED is not set +# CONFIG_USB_CDC_COMPOSITE is not set +# CONFIG_USB_G_ACM_MS is not set +# CONFIG_USB_G_MULTI is not set +# CONFIG_USB_G_HID is not set +# CONFIG_USB_G_DBGP is not set +# CONFIG_USB_LED_TRIG is not set +# CONFIG_UWB is not set +CONFIG_MMC=y +# CONFIG_MMC_DEBUG is not set +# CONFIG_MMC_CLKGATE is not set +# CONFIG_MMC_EMBEDDED_SDIO is not set +# CONFIG_MMC_PARANOID_SD_INIT is not set +CONFIG_MMC_SAMSUNG_SMART=y +# CONFIG_MMC_AMAZON_BOOT0_PL_BACKUP is not set +# CONFIG_MMC_DETECT_WORK_WAKELOCK is not set + +# +# MMC/SD/SDIO Card Drivers +# +CONFIG_MMC_BLOCK=y +CONFIG_MMC_BLOCK_MINORS=32 +CONFIG_MMC_BLOCK_BOUNCE=y +# CONFIG_MMC_BLOCK_DEFERRED_RESUME is not set +# CONFIG_SDIO_UART is not set +# CONFIG_MMC_TEST is not set + +# +# MMC/SD/SDIO Host Controller Drivers +# +# CONFIG_MMC_MTK is not set +CONFIG_MMC_MT81XX=y +# CONFIG_MMC_ARMMMCI is not set +# CONFIG_MMC_SDHCI is not set +# CONFIG_MMC_DW is not set +# CONFIG_MMC_VUB300 is not set +# CONFIG_MMC_USHC is not set +# CONFIG_MMC_USDHI6ROL0 is not set +# CONFIG_MEMSTICK is not set +CONFIG_NEW_LEDS=y +CONFIG_LEDS_CLASS=y + +# +# LED drivers +# +# CONFIG_LEDS_LM3530 is not set +# CONFIG_LEDS_LM3642 is not set +# CONFIG_LEDS_PCA9532 is not set +# CONFIG_LEDS_GPIO is not set +# CONFIG_LEDS_LP3944 is not set +CONFIG_LEDS_LP55XX_COMMON=y +# CONFIG_LEDS_LP5521 is not set +CONFIG_LEDS_LP5523=y +# CONFIG_LEDS_LP5562 is not set +# CONFIG_LEDS_LP8501 is not set +# CONFIG_LEDS_PCA955X is not set +# CONFIG_LEDS_PCA963X is not set +# CONFIG_LEDS_DAC124S085 is not set +# CONFIG_LEDS_REGULATOR is not set +# CONFIG_LEDS_BD2802 is not set +# CONFIG_LEDS_LT3593 is not set +# CONFIG_LEDS_TCA6507 is not set +# CONFIG_LEDS_LM355x is not set +# CONFIG_LEDS_LP855X is not set + +# +# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM) +# +# CONFIG_LEDS_BLINKM is not set +# CONFIG_LEDS_SYSCON is not set +CONFIG_LEDS_IS31FL3236=y + +# +# LED Triggers +# +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_TIMER=y +# CONFIG_LEDS_TRIGGER_ONESHOT is not set +# CONFIG_LEDS_TRIGGER_HEARTBEAT is not set +# CONFIG_LEDS_TRIGGER_DIM is not set +# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set +# CONFIG_LEDS_TRIGGER_CPU is not set +# CONFIG_LEDS_TRIGGER_GPIO is not set +# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set + +# +# iptables trigger is under Netfilter config (LED target) +# +# CONFIG_LEDS_TRIGGER_TRANSIENT is not set +# CONFIG_LEDS_TRIGGER_CAMERA is not set +CONFIG_SWITCH=y +# CONFIG_SWITCH_GPIO is not set +# CONFIG_ACCESSIBILITY is not set +# CONFIG_EDAC is not set +CONFIG_RTC_LIB=y +CONFIG_RTC_CLASS=y +CONFIG_RTC_HCTOSYS=y +# CONFIG_RTC_SYSTOHC is not set +CONFIG_RTC_HCTOSYS_DEVICE="rtc0" +# CONFIG_RTC_DEBUG is not set + +# +# RTC interfaces +# +CONFIG_RTC_INTF_SYSFS=y +CONFIG_RTC_INTF_PROC=y +CONFIG_RTC_INTF_DEV=y +# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set +# CONFIG_RTC_DRV_TEST is not set + +# +# I2C RTC drivers +# +# CONFIG_RTC_DRV_DS1307 is not set +# CONFIG_RTC_DRV_DS1374 is not set +# CONFIG_RTC_DRV_DS1672 is not set +# CONFIG_RTC_DRV_DS3232 is not set +# CONFIG_RTC_DRV_HYM8563 is not set +# CONFIG_RTC_DRV_MAX6900 is not set +# CONFIG_RTC_DRV_RS5C372 is not set +# CONFIG_RTC_DRV_ISL1208 is not set +# CONFIG_RTC_DRV_ISL12022 is not set +# CONFIG_RTC_DRV_ISL12057 is not set +# CONFIG_RTC_DRV_X1205 is not set +# CONFIG_RTC_DRV_PCF2127 is not set +# CONFIG_RTC_DRV_PCF8523 is not set +# CONFIG_RTC_DRV_PCF8563 is not set +# CONFIG_RTC_DRV_PCF85063 is not set +# CONFIG_RTC_DRV_PCF8583 is not set +# CONFIG_RTC_DRV_M41T80 is not set +# CONFIG_RTC_DRV_BQ32K is not set +# CONFIG_RTC_DRV_S35390A is not set +# CONFIG_RTC_DRV_FM3130 is not set +# CONFIG_RTC_DRV_RX8581 is not set +# CONFIG_RTC_DRV_RX8025 is not set +# CONFIG_RTC_DRV_EM3027 is not set +# CONFIG_RTC_DRV_RV3029C2 is not set + +# +# SPI RTC drivers +# +# CONFIG_RTC_DRV_M41T93 is not set +# CONFIG_RTC_DRV_M41T94 is not set +# CONFIG_RTC_DRV_DS1305 is not set +# CONFIG_RTC_DRV_DS1343 is not set +# CONFIG_RTC_DRV_DS1347 is not set +# CONFIG_RTC_DRV_DS1390 is not set +# CONFIG_RTC_DRV_MAX6902 is not set +# CONFIG_RTC_DRV_R9701 is not set +# CONFIG_RTC_DRV_RS5C348 is not set +# CONFIG_RTC_DRV_DS3234 is not set +# CONFIG_RTC_DRV_PCF2123 is not set +# CONFIG_RTC_DRV_RX4581 is not set +# CONFIG_RTC_DRV_MCP795 is not set + +# +# Platform RTC drivers +# +# CONFIG_RTC_DRV_CMOS is not set +# CONFIG_RTC_DRV_DS1286 is not set +# CONFIG_RTC_DRV_DS1511 is not set +# CONFIG_RTC_DRV_DS1553 is not set +# CONFIG_RTC_DRV_DS1742 is not set +# CONFIG_RTC_DRV_DS2404 is not set +# CONFIG_RTC_DRV_STK17TA8 is not set +# CONFIG_RTC_DRV_M48T86 is not set +# CONFIG_RTC_DRV_M48T35 is not set +# CONFIG_RTC_DRV_M48T59 is not set +# CONFIG_RTC_DRV_MSM6242 is not set +# CONFIG_RTC_DRV_BQ4802 is not set +# CONFIG_RTC_DRV_RP5C01 is not set +# CONFIG_RTC_DRV_V3020 is not set + +# +# on-CPU RTC drivers +# +# CONFIG_RTC_DRV_PL030 is not set +# CONFIG_RTC_DRV_PL031 is not set +# CONFIG_RTC_DRV_SNVS is not set +# CONFIG_RTC_DRV_XGENE is not set + +# +# HID Sensor RTC drivers +# +# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set +# CONFIG_DMADEVICES is not set +# CONFIG_AUXDISPLAY is not set +# CONFIG_UIO is not set +# CONFIG_VIRT_DRIVERS is not set + +# +# Virtio drivers +# +# CONFIG_VIRTIO_MMIO is not set + +# +# Microsoft Hyper-V guest support +# +CONFIG_STAGING=y +# CONFIG_PRISM2_USB is not set +# CONFIG_COMEDI is not set +# CONFIG_RTLLIB is not set +# CONFIG_R8712U is not set +# CONFIG_R8188EU is not set +# CONFIG_LINE6_USB is not set + +# +# IIO staging drivers +# + +# +# Accelerometers +# +# CONFIG_ADIS16201 is not set +# CONFIG_ADIS16203 is not set +# CONFIG_ADIS16204 is not set +# CONFIG_ADIS16209 is not set +# CONFIG_ADIS16220 is not set +# CONFIG_ADIS16240 is not set +# CONFIG_LIS3L02DQ is not set + +# +# Analog to digital converters +# +# CONFIG_AD7606 is not set +# CONFIG_AD7780 is not set +# CONFIG_AD7816 is not set +# CONFIG_AD7192 is not set +# CONFIG_AD7280 is not set + +# +# Analog digital bi-direction converters +# +# CONFIG_ADT7316 is not set + +# +# Capacitance to digital converters +# +# CONFIG_AD7150 is not set +# CONFIG_AD7152 is not set +# CONFIG_AD7746 is not set + +# +# Direct Digital Synthesis +# +# CONFIG_AD9832 is not set +# CONFIG_AD9834 is not set + +# +# Digital gyroscope sensors +# +# CONFIG_ADIS16060 is not set + +# +# Network Analyzer, Impedance Converters +# +# CONFIG_AD5933 is not set + +# +# Light sensors +# +# CONFIG_SENSORS_ISL29018 is not set +# CONFIG_SENSORS_ISL29028 is not set +# CONFIG_TSL2583 is not set +# CONFIG_TSL2x7x is not set + +# +# Magnetometer sensors +# +# CONFIG_SENSORS_HMC5843_I2C is not set +# CONFIG_SENSORS_HMC5843_SPI is not set + +# +# Active energy metering IC +# +# CONFIG_ADE7753 is not set +# CONFIG_ADE7754 is not set +# CONFIG_ADE7758 is not set +# CONFIG_ADE7759 is not set +# CONFIG_ADE7854 is not set + +# +# Resolver to digital converters +# +# CONFIG_AD2S90 is not set +# CONFIG_AD2S1200 is not set +# CONFIG_AD2S1210 is not set + +# +# Triggers - standalone +# +# CONFIG_IIO_SIMPLE_DUMMY is not set +# CONFIG_BCM_WIMAX is not set +# CONFIG_FT1000 is not set + +# +# Speakup console speech +# +# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set +# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set +# CONFIG_STAGING_MEDIA is not set + +# +# Android +# +CONFIG_ANDROID=y +CONFIG_ANDROID_BINDER_IPC=y +CONFIG_ANDROID_BINDER_IPC_32BIT=y +CONFIG_ASHMEM=y +CONFIG_ANDROID_LOGGER=y +CONFIG_ANDROID_TIMED_OUTPUT=y +# CONFIG_ANDROID_TIMED_GPIO is not set +CONFIG_ANDROID_LOW_MEMORY_KILLER=y +CONFIG_ANDROID_LOW_MEMORY_KILLER_AUTODETECT_OOM_ADJ_VALUES=y +CONFIG_ANDROID_INTF_ALARM_DEV=y +CONFIG_AMAZON_METRICS_LOG=y +CONFIG_SYNC=y +CONFIG_SW_SYNC=y +CONFIG_SW_SYNC_USER=y +# CONFIG_MTK_GMO_RAM_OPTIMIZE is not set +CONFIG_AMAZON_LOG=y +CONFIG_AMAZON_LOGD=y +CONFIG_ION=y +# CONFIG_ION_TEST is not set +# CONFIG_ION_DUMMY is not set +CONFIG_MTK_ION=y +# CONFIG_FIQ_DEBUGGER is not set +# CONFIG_FIQ_WATCHDOG is not set +# CONFIG_USB_WPAN_HCD is not set +# CONFIG_WIMAX_GDM72XX is not set +# CONFIG_LTE_GDM724X is not set +# CONFIG_MTD_SPINAND_MT29F is not set +# CONFIG_LUSTRE_FS is not set +# CONFIG_DGAP is not set +# CONFIG_GS_FPGABOOT is not set + +# +# Amazon +# +CONFIG_AMAZON=y +CONFIG_AMAZON_KLOG_CONSOLE=y +# CONFIG_AMAZON_KLOG_CONSOLE_TRYLOCK is not set +CONFIG_AMAZON_SIGN_OF_LIFE=y +CONFIG_AMAZON_SIGN_OF_LIFE_MTK=y +# CONFIG_AMAZON_POWEROFF_LOG is not set +CONFIG_BISCUIT=y +# CONFIG_abe123 is not set +# CONFIG_sbc123 is not set +# CONFIG_AMAZON_LL_LOG is not set +CONFIG_AMAZON_A2DP_TS=y +CONFIG_AMAZON_A2DP_TS_DMA=y + +# +# SOC (System On Chip) specific Drivers +# +CONFIG_SOC_MEDIATEK=y +CONFIG_MTK_INFRACFG=y +# CONFIG_MTK_SCPSYS_MT8173 is not set +CONFIG_MTK_SCPSYS_MT8163=y +# CONFIG_MTK_SCPSYS_MT2701 is not set +# CONFIG_SOC_TI is not set +CONFIG_CLKDEV_LOOKUP=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_COMMON_CLK=y + +# +# Common Clock Framework +# +# CONFIG_COMMON_CLK_SI5351 is not set +# CONFIG_COMMON_CLK_SI570 is not set +# CONFIG_COMMON_CLK_PXA is not set +# CONFIG_COMMON_CLK_FREQ_STATS_ACCOUNTING is not set +# CONFIG_COMMON_CLK_QCOM is not set +CONFIG_COMMON_CLK_MEDIATEK=y +CONFIG_COMMON_CLK_MEDIATEK_NEW=y +# CONFIG_COMMON_CLK_MT6735 is not set +# CONFIG_COMMON_CLK_MT6755 is not set +# CONFIG_COMMON_CLK_MT8135 is not set +CONFIG_COMMON_CLK_MT8163=y +# CONFIG_COMMON_CLK_MT8173 is not set +# CONFIG_COMMON_CLK_MT2701 is not set + +# +# Hardware Spinlock drivers +# + +# +# Clock Source drivers +# +CONFIG_CLKSRC_OF=y +CONFIG_CLKSRC_MMIO=y +CONFIG_ARM_ARCH_TIMER=y +CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y +# CONFIG_ATMEL_PIT is not set +CONFIG_MTK_TIMER=y +# CONFIG_SH_TIMER_CMT is not set +# CONFIG_SH_TIMER_MTU2 is not set +# CONFIG_SH_TIMER_TMU is not set +# CONFIG_EM_TIMER_STI is not set +# CONFIG_CLKSRC_VERSATILE is not set +# CONFIG_MAILBOX is not set +CONFIG_IOMMU_SUPPORT=y +CONFIG_OF_IOMMU=y +# CONFIG_MTK_IOMMU is not set + +# +# Remoteproc drivers +# +# CONFIG_STE_MODEM_RPROC is not set + +# +# Rpmsg drivers +# + +# +# SOC (System On Chip) specific Drivers +# +# CONFIG_PM_DEVFREQ is not set +# CONFIG_EXTCON is not set +# CONFIG_MEMORY is not set +CONFIG_IIO=y +# CONFIG_IIO_BUFFER is not set +# CONFIG_IIO_TRIGGER is not set + +# +# Accelerometers +# +# CONFIG_BMA180 is not set +# CONFIG_BMC150_ACCEL is not set +# CONFIG_IIO_ST_ACCEL_3AXIS is not set +# CONFIG_KXSD9 is not set +# CONFIG_MMA8452 is not set +# CONFIG_KXCJK1013 is not set + +# +# Analog to digital converters +# +# CONFIG_AD7266 is not set +# CONFIG_AD7291 is not set +# CONFIG_AD7298 is not set +# CONFIG_AD7476 is not set +# CONFIG_AD7791 is not set +# CONFIG_AD7793 is not set +# CONFIG_AD7887 is not set +# CONFIG_AD7923 is not set +# CONFIG_AD799X is not set +# CONFIG_MAX1027 is not set +# CONFIG_MAX1363 is not set +# CONFIG_MCP320X is not set +# CONFIG_MCP3422 is not set +# CONFIG_NAU7802 is not set +# CONFIG_TI_ADC081C is not set +# CONFIG_TI_ADC128S052 is not set +# CONFIG_VF610_ADC is not set + +# +# Amplifiers +# +# CONFIG_AD8366 is not set + +# +# Hid Sensor IIO Common +# + +# +# Digital to analog converters +# +# CONFIG_AD5064 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_AD5624R_SPI is not set +# CONFIG_AD5686 is not set +# CONFIG_AD5755 is not set +# CONFIG_AD5764 is not set +# CONFIG_AD5791 is not set +# CONFIG_AD7303 is not set +# CONFIG_MAX517 is not set +# CONFIG_MAX5821 is not set +# CONFIG_MCP4725 is not set +# CONFIG_MCP4922 is not set + +# +# Frequency Synthesizers DDS/PLL +# + +# +# Clock Generator/Distribution +# +# CONFIG_AD9523 is not set + +# +# Phase-Locked Loop (PLL) frequency synthesizers +# +# CONFIG_ADF4350 is not set + +# +# Digital gyroscope sensors +# +# CONFIG_ADIS16080 is not set +# CONFIG_ADIS16130 is not set +# CONFIG_ADIS16136 is not set +# CONFIG_ADIS16260 is not set +# CONFIG_ADXRS450 is not set +# CONFIG_BMG160 is not set +# CONFIG_IIO_ST_GYRO_3AXIS is not set +# CONFIG_ITG3200 is not set + +# +# Humidity sensors +# +# CONFIG_DHT11 is not set +# CONFIG_SI7005 is not set + +# +# Inertial measurement units +# +# CONFIG_ADIS16400 is not set +# CONFIG_ADIS16480 is not set +# CONFIG_INVENSENSE_MPU6050 is not set +# CONFIG_INV_MPU6050_IIO is not set + +# +# Light sensors +# +# CONFIG_ADJD_S311 is not set +# CONFIG_AL3320A is not set +# CONFIG_APDS9300 is not set +# CONFIG_CM32181 is not set +# CONFIG_CM36651 is not set +# CONFIG_GP2AP020A00F is not set +# CONFIG_ISL29125 is not set +# CONFIG_LTR501 is not set +# CONFIG_TCS3414 is not set +# CONFIG_TCS3472 is not set +# CONFIG_SENSORS_TSL2563 is not set +# CONFIG_TSL4531 is not set +# CONFIG_VCNL4000 is not set +# CONFIG_OPT3001 is not set + +# +# Magnetometer sensors +# +# CONFIG_AK8975 is not set +# CONFIG_AK09911 is not set +# CONFIG_MAG3110 is not set +# CONFIG_IIO_ST_MAGN_3AXIS is not set + +# +# Inclinometer sensors +# + +# +# Pressure sensors +# +# CONFIG_MPL115 is not set +# CONFIG_MPL3115 is not set +# CONFIG_IIO_ST_PRESS is not set +# CONFIG_T5403 is not set + +# +# Lightning sensors +# +# CONFIG_AS3935 is not set + +# +# Temperature sensors +# +# CONFIG_MLX90614 is not set +# CONFIG_TMP006 is not set +# CONFIG_PWM is not set +CONFIG_IRQCHIP=y +CONFIG_ARM_GIC=y +CONFIG_ARM_GIC_V3=y +# CONFIG_IPACK_BUS is not set +CONFIG_RESET_CONTROLLER=y +# CONFIG_FMC is not set + +# +# PHY Subsystem +# +# CONFIG_GENERIC_PHY is not set +# CONFIG_BCM_KONA_USB2_PHY is not set +# CONFIG_POWERCAP is not set +# CONFIG_MCB is not set + +# +# File systems +# +CONFIG_DCACHE_WORD_ACCESS=y +# CONFIG_EXT2_FS is not set +# CONFIG_EXT3_FS is not set +CONFIG_EXT4_FS=y +CONFIG_EXT4_USE_FOR_EXT23=y +# CONFIG_EXT4_FS_POSIX_ACL is not set +CONFIG_EXT4_FS_SECURITY=y +CONFIG_EXT4_FS_ENCRYPTION=y +# CONFIG_EXT4_DEBUG is not set +CONFIG_JBD2=y +# CONFIG_JBD2_DEBUG is not set +CONFIG_FS_MBCACHE=y +# CONFIG_REISERFS_FS is not set +# CONFIG_JFS_FS is not set +# CONFIG_XFS_FS is not set +# CONFIG_GFS2_FS is not set +# CONFIG_OCFS2_FS is not set +# CONFIG_BTRFS_FS is not set +# CONFIG_NILFS2_FS is not set +CONFIG_FS_POSIX_ACL=y +CONFIG_EXPORTFS=y +CONFIG_FILE_LOCKING=y +CONFIG_FSNOTIFY=y +CONFIG_DNOTIFY=y +CONFIG_INOTIFY_USER=y +# CONFIG_FANOTIFY is not set +CONFIG_QUOTA=y +# CONFIG_QUOTA_NETLINK_INTERFACE is not set +CONFIG_PRINT_QUOTA_WARNING=y +# CONFIG_QUOTA_DEBUG is not set +CONFIG_QUOTA_TREE=y +# CONFIG_QFMT_V1 is not set +CONFIG_QFMT_V2=y +CONFIG_QUOTACTL=y +# CONFIG_AUTOFS4_FS is not set +CONFIG_FUSE_FS=y +# CONFIG_CUSE is not set +# CONFIG_OVERLAY_FS is not set + +# +# Caches +# +# CONFIG_FSCACHE is not set + +# +# CD-ROM/DVD Filesystems +# +CONFIG_ISO9660_FS=y +CONFIG_JOLIET=y +CONFIG_ZISOFS=y +# CONFIG_UDF_FS is not set + +# +# DOS/FAT/NT Filesystems +# +CONFIG_FAT_FS=y +CONFIG_MSDOS_FS=y +CONFIG_VFAT_FS=y +CONFIG_FAT_DEFAULT_CODEPAGE=437 +CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1" +# CONFIG_NTFS_FS is not set + +# +# Pseudo filesystems +# +CONFIG_PROC_FS=y +CONFIG_PROC_SYSCTL=y +CONFIG_PROC_PAGE_MONITOR=y +CONFIG_KERNFS=y +CONFIG_SYSFS=y +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +# CONFIG_HUGETLB_PAGE is not set +CONFIG_CONFIGFS_FS=y +CONFIG_MISC_FILESYSTEMS=y +# CONFIG_ADFS_FS is not set +# CONFIG_AFFS_FS is not set +# CONFIG_ECRYPT_FS is not set +# CONFIG_HFS_FS is not set +# CONFIG_HFSPLUS_FS is not set +# CONFIG_BEFS_FS is not set +# CONFIG_BFS_FS is not set +# CONFIG_EFS_FS is not set +# CONFIG_JFFS2_FS is not set +CONFIG_UBIFS_FS=y +CONFIG_UBIFS_FS_ADVANCED_COMPR=y +CONFIG_UBIFS_FS_LZO=y +# CONFIG_UBIFS_FS_LZ4K is not set +CONFIG_UBIFS_FS_ZLIB=y +# CONFIG_LOGFS is not set +# CONFIG_CRAMFS is not set +# CONFIG_SQUASHFS is not set +# CONFIG_VXFS_FS is not set +# CONFIG_MINIX_FS is not set +# CONFIG_OMFS_FS is not set +# CONFIG_HPFS_FS is not set +# CONFIG_QNX4FS_FS is not set +# CONFIG_QNX6FS_FS is not set +# CONFIG_ROMFS_FS is not set +# CONFIG_PSTORE is not set +# CONFIG_SYSV_FS is not set +# CONFIG_UFS_FS is not set +# CONFIG_F2FS_FS is not set +# CONFIG_NETWORK_FILESYSTEMS is not set +CONFIG_NLS=y +CONFIG_NLS_DEFAULT="iso8859-1" +CONFIG_NLS_CODEPAGE_437=y +# 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_936 is not set +CONFIG_NLS_CODEPAGE_950=y +# CONFIG_NLS_CODEPAGE_932 is not set +# CONFIG_NLS_CODEPAGE_949 is not set +# CONFIG_NLS_CODEPAGE_874 is not set +# CONFIG_NLS_ISO8859_8 is not set +# CONFIG_NLS_CODEPAGE_1250 is not set +# CONFIG_NLS_CODEPAGE_1251 is not set +CONFIG_NLS_ASCII=y +CONFIG_NLS_ISO8859_1=y +# 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_9 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_KOI8_R is not set +# CONFIG_NLS_KOI8_U is not set +# CONFIG_NLS_MAC_ROMAN 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_ROMANIAN is not set +# CONFIG_NLS_MAC_TURKISH is not set +CONFIG_NLS_UTF8=y +# CONFIG_DLM is not set +# CONFIG_RAWFS_FS is not set +# CONFIG_YAFFS_FS is not set +# CONFIG_UMOUNT_DEBUG is not set + +# +# Kernel hacking +# + +# +# printk and dmesg options +# +CONFIG_PRINTK_TIME=y +CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4 +# CONFIG_BOOT_PRINTK_DELAY is not set +# CONFIG_DYNAMIC_DEBUG is not set + +# +# Compile-time checks and compiler options +# +CONFIG_DEBUG_INFO=y +# CONFIG_DEBUG_INFO_REDUCED is not set +# CONFIG_DEBUG_INFO_SPLIT is not set +# CONFIG_DEBUG_INFO_DWARF4 is not set +CONFIG_ENABLE_WARN_DEPRECATED=y +CONFIG_ENABLE_MUST_CHECK=y +CONFIG_FRAME_WARN=1400 +# CONFIG_STRIP_ASM_SYMS is not set +# CONFIG_READABLE_ASM is not set +# CONFIG_UNUSED_SYMBOLS is not set +CONFIG_DEBUG_FS=y +# CONFIG_HEADERS_CHECK is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set +# CONFIG_MAGIC_SYSRQ is not set +CONFIG_DEBUG_KERNEL=y + +# +# Memory Debugging +# +# CONFIG_DEBUG_PAGEALLOC is not set +# CONFIG_DEBUG_OBJECTS is not set +# CONFIG_SLUB_STATS is not set +CONFIG_HAVE_DEBUG_KMEMLEAK=y +# CONFIG_DEBUG_KMEMLEAK is not set +# CONFIG_DEBUG_STACK_USAGE is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEBUG_PER_CPU_MAPS is not set +# CONFIG_DEBUG_HIGHMEM is not set +# CONFIG_DEBUG_SHIRQ is not set + +# +# Debug Lockups and Hangs +# +# CONFIG_LOCKUP_DETECTOR is not set +# CONFIG_DETECT_HUNG_TASK is not set +CONFIG_PANIC_ON_OOPS=y +CONFIG_PANIC_ON_OOPS_VALUE=1 +CONFIG_PANIC_TIMEOUT=1 +CONFIG_SCHED_DEBUG=y +CONFIG_SCHEDSTATS=y +# CONFIG_SCHED_STACK_END_CHECK is not set +# CONFIG_TIMER_STATS is not set +CONFIG_DEBUG_PREEMPT=y + +# +# Lock Debugging (spinlocks, mutexes, etc...) +# +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_SPINLOCK is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_PROVE_LOCKING is not set +# CONFIG_LOCK_STAT is not set +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_LOCK_TORTURE_TEST is not set +CONFIG_STACKTRACE=y +# CONFIG_DEBUG_KOBJECT is not set +# CONFIG_DEBUG_BUGVERBOSE is not set +# CONFIG_DEBUG_LIST is not set +# CONFIG_DEBUG_PI_LIST is not set +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_NOTIFIERS is not set +# CONFIG_DEBUG_CREDENTIALS is not set + +# +# RCU Debugging +# +# CONFIG_SPARSE_RCU_POINTER is not set +# CONFIG_TORTURE_TEST is not set +# CONFIG_RCU_TORTURE_TEST is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +CONFIG_RCU_CPU_STALL_VERBOSE=y +# CONFIG_RCU_CPU_STALL_INFO is not set +# CONFIG_RCU_TRACE is not set +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set +# CONFIG_NOTIFIER_ERROR_INJECTION is not set +CONFIG_FAULT_INJECTION=y +# CONFIG_FAILSLAB is not set +# CONFIG_FAIL_PAGE_ALLOC is not set +# CONFIG_FAIL_MAKE_REQUEST is not set +# CONFIG_FAIL_IO_TIMEOUT is not set +# CONFIG_FAIL_MMC_REQUEST is not set +# CONFIG_FAULT_INJECTION_DEBUG_FS is not set +CONFIG_NOP_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_TRACE_CLOCK=y +CONFIG_RING_BUFFER=y +CONFIG_EVENT_TRACING=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_TRACING=y +CONFIG_TRACING_SUPPORT=y +CONFIG_FTRACE=y +# CONFIG_FUNCTION_TRACER is not set +# CONFIG_IRQSOFF_TRACER is not set +# CONFIG_PREEMPT_TRACER is not set +# CONFIG_SCHED_TRACER is not set +CONFIG_ENABLE_DEFAULT_TRACERS=y +# CONFIG_FTRACE_SYSCALLS is not set +# CONFIG_TRACER_SNAPSHOT is not set +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set +# CONFIG_PROFILE_ALL_BRANCHES is not set +# CONFIG_STACK_TRACER is not set +# CONFIG_BLK_DEV_IO_TRACE is not set +# CONFIG_UPROBE_EVENT is not set +# CONFIG_PROBE_EVENTS is not set +# CONFIG_TRACEPOINT_BENCHMARK is not set +# CONFIG_RING_BUFFER_BENCHMARK is not set +# CONFIG_RING_BUFFER_STARTUP_TEST is not set +# CONFIG_MTK_SCHED_TRACERS is not set +# CONFIG_MTK_KERNEL_MARKER is not set + +# +# Runtime Testing +# +# CONFIG_LKDTM is not set +# CONFIG_TEST_LIST_SORT is not set +# CONFIG_BACKTRACE_SELF_TEST is not set +# CONFIG_RBTREE_TEST is not set +# CONFIG_INTERVAL_TREE_TEST is not set +# CONFIG_PERCPU_TEST is not set +# CONFIG_ATOMIC64_SELFTEST is not set +# CONFIG_TEST_STRING_HELPERS is not set +# CONFIG_TEST_KSTRTOX is not set +# CONFIG_TEST_RHASHTABLE is not set +# CONFIG_DMA_API_DEBUG is not set +# CONFIG_TEST_LKM is not set +# CONFIG_TEST_USER_COPY is not set +# CONFIG_TEST_BPF is not set +# CONFIG_TEST_FIRMWARE is not set +# CONFIG_TEST_UDELAY is not set +# CONFIG_SAMPLES is not set +CONFIG_HAVE_ARCH_KGDB=y +# CONFIG_KGDB is not set +# CONFIG_ARM_PTDUMP is not set +# CONFIG_STRICT_DEVMEM is not set +CONFIG_ARM_UNWIND=y +# CONFIG_DEBUG_USER is not set +# CONFIG_DEBUG_LL is not set +CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" +# CONFIG_DEBUG_UART_PL01X is not set +# CONFIG_DEBUG_UART_8250 is not set +# CONFIG_DEBUG_UART_BCM63XX is not set +CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" +# CONFIG_OC_ETM is not set +# CONFIG_PID_IN_CONTEXTIDR is not set +# CONFIG_DEBUG_SET_MODULE_RONX is not set + +# +# Security options +# +CONFIG_KEYS=y +# CONFIG_PERSISTENT_KEYRINGS is not set +# CONFIG_BIG_KEYS is not set +CONFIG_ENCRYPTED_KEYS=y +# CONFIG_KEYS_DEBUG_PROC_KEYS is not set +# CONFIG_SECURITY_DMESG_RESTRICT is not set +# CONFIG_SECURITY_PERF_EVENTS_RESTRICT is not set +CONFIG_SECURITY=y +# CONFIG_SECURITYFS is not set +CONFIG_SECURITY_NETWORK=y +# CONFIG_SECURITY_NETWORK_XFRM is not set +# CONFIG_SECURITY_PATH is not set +CONFIG_LSM_MMAP_MIN_ADDR=32768 +CONFIG_SECURITY_SELINUX=y +CONFIG_SECURITY_SELINUX_BOOTPARAM=y +CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=1 +# CONFIG_SECURITY_SELINUX_DISABLE is not set +CONFIG_SECURITY_SELINUX_DEVELOP=y +# CONFIG_SECURITY_SELINUX_KERN_PERMISSIVE is not set +CONFIG_SECURITY_SELINUX_AVC_STATS=y +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=0 +# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set +# CONFIG_SECURITY_SMACK is not set +# CONFIG_SECURITY_TOMOYO is not set +# CONFIG_SECURITY_APPARMOR is not set +# CONFIG_SECURITY_YAMA is not set +CONFIG_INTEGRITY=y +# CONFIG_INTEGRITY_SIGNATURE is not set +CONFIG_INTEGRITY_AUDIT=y +# CONFIG_IMA is not set +# CONFIG_EVM is not set +CONFIG_DEFAULT_SECURITY_SELINUX=y +# CONFIG_DEFAULT_SECURITY_DAC is not set +CONFIG_DEFAULT_SECURITY="selinux" +CONFIG_CRYPTO=y + +# +# Crypto core or helper +# +CONFIG_CRYPTO_ALGAPI=y +CONFIG_CRYPTO_ALGAPI2=y +CONFIG_CRYPTO_AEAD=y +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_BLKCIPHER=y +CONFIG_CRYPTO_BLKCIPHER2=y +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_RNG=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_PCOMP2=y +CONFIG_CRYPTO_MANAGER=y +CONFIG_CRYPTO_MANAGER2=y +# CONFIG_CRYPTO_USER is not set +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y +CONFIG_CRYPTO_GF128MUL=y +CONFIG_CRYPTO_NULL=y +# CONFIG_CRYPTO_PCRYPT is not set +CONFIG_CRYPTO_WORKQUEUE=y +CONFIG_CRYPTO_CRYPTD=y +# CONFIG_CRYPTO_MCRYPTD is not set +CONFIG_CRYPTO_AUTHENC=y +# CONFIG_CRYPTO_TEST is not set +CONFIG_CRYPTO_ABLK_HELPER=y + +# +# Authenticated Encryption with Associated Data +# +# CONFIG_CRYPTO_CCM is not set +# CONFIG_CRYPTO_GCM is not set +CONFIG_CRYPTO_SEQIV=y + +# +# Block modes +# +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CTR=y +CONFIG_CRYPTO_CTS=y +CONFIG_CRYPTO_ECB=y +# CONFIG_CRYPTO_LRW is not set +# CONFIG_CRYPTO_PCBC is not set +CONFIG_CRYPTO_XTS=y + +# +# Hash modes +# +# CONFIG_CRYPTO_CMAC is not set +CONFIG_CRYPTO_HMAC=y +# CONFIG_CRYPTO_XCBC is not set +# CONFIG_CRYPTO_VMAC is not set + +# +# Digest +# +CONFIG_CRYPTO_CRC32C=y +# CONFIG_CRYPTO_CRC32 is not set +# CONFIG_CRYPTO_CRCT10DIF is not set +# CONFIG_CRYPTO_GHASH is not set +# CONFIG_CRYPTO_MD4 is not set +CONFIG_CRYPTO_MD5=y +# CONFIG_CRYPTO_MICHAEL_MIC is not set +# CONFIG_CRYPTO_RMD128 is not set +# CONFIG_CRYPTO_RMD160 is not set +# CONFIG_CRYPTO_RMD256 is not set +# CONFIG_CRYPTO_RMD320 is not set +CONFIG_CRYPTO_SHA1=y +# CONFIG_CRYPTO_SHA1_ARM is not set +# CONFIG_CRYPTO_SHA1_ARM_NEON is not set +CONFIG_CRYPTO_SHA256=y +# CONFIG_CRYPTO_SHA512 is not set +# CONFIG_CRYPTO_SHA512_ARM_NEON is not set +# CONFIG_CRYPTO_TGR192 is not set +# CONFIG_CRYPTO_WP512 is not set + +# +# Ciphers +# +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_ARM=y +CONFIG_CRYPTO_AES_ARM_BS=y +# CONFIG_CRYPTO_AES_ARM32_CE is not set +# CONFIG_CRYPTO_ANUBIS is not set +CONFIG_CRYPTO_ARC4=y +# 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_DES=y +# CONFIG_CRYPTO_FCRYPT is not set +# CONFIG_CRYPTO_KHAZAD is not set +# CONFIG_CRYPTO_SALSA20 is not set +# CONFIG_CRYPTO_SEED is not set +# CONFIG_CRYPTO_SERPENT is not set +# CONFIG_CRYPTO_TEA is not set +CONFIG_CRYPTO_TWOFISH=y +CONFIG_CRYPTO_TWOFISH_COMMON=y + +# +# Compression +# +CONFIG_CRYPTO_DEFLATE=y +# CONFIG_CRYPTO_ZLIB is not set +CONFIG_CRYPTO_LZO=y +# CONFIG_CRYPTO_LZ4K is not set +# CONFIG_CRYPTO_LZ4 is not set +# CONFIG_CRYPTO_LZ4HC is not set + +# +# Random Number Generation +# +# CONFIG_CRYPTO_ANSI_CPRNG is not set +CONFIG_CRYPTO_DRBG_MENU=y +CONFIG_CRYPTO_DRBG_HMAC=y +# CONFIG_CRYPTO_DRBG_HASH is not set +# CONFIG_CRYPTO_DRBG_CTR is not set +CONFIG_CRYPTO_DRBG=y +# CONFIG_CRYPTO_USER_API_HASH is not set +# CONFIG_CRYPTO_USER_API_SKCIPHER is not set +CONFIG_CRYPTO_HASH_INFO=y +# CONFIG_CRYPTO_HW is not set +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y +CONFIG_PUBLIC_KEY_ALGO_RSA=y +CONFIG_X509_CERTIFICATE_PARSER=y +# CONFIG_PKCS7_MESSAGE_PARSER is not set +CONFIG_BINARY_PRINTF=y + +# +# Library routines +# +CONFIG_BITREVERSE=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_NET_UTILS=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_IO=y +CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y +CONFIG_CRC_CCITT=y +CONFIG_CRC16=y +# CONFIG_CRC_T10DIF is not set +# CONFIG_CRC_ITU_T is not set +CONFIG_CRC32=y +# CONFIG_CRC32_SELFTEST is not set +CONFIG_CRC32_SLICEBY8=y +# CONFIG_CRC32_SLICEBY4 is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_BIT is not set +# CONFIG_CRC7 is not set +CONFIG_LIBCRC32C=y +# CONFIG_CRC8 is not set +CONFIG_AUDIT_GENERIC=y +# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set +# CONFIG_RANDOM32_SELFTEST is not set +CONFIG_ZLIB_INFLATE=y +CONFIG_ZLIB_DEFLATE=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_LZ4_DECOMPRESS=y +# CONFIG_LZ4K is not set +CONFIG_XZ_DEC=y +CONFIG_XZ_DEC_X86=y +CONFIG_XZ_DEC_POWERPC=y +CONFIG_XZ_DEC_IA64=y +CONFIG_XZ_DEC_ARM=y +CONFIG_XZ_DEC_ARMTHUMB=y +CONFIG_XZ_DEC_SPARC=y +CONFIG_XZ_DEC_BCJ=y +# CONFIG_XZ_DEC_TEST is not set +CONFIG_DECOMPRESS_GZIP=y +CONFIG_DECOMPRESS_BZIP2=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_XZ=y +CONFIG_DECOMPRESS_LZO=y +CONFIG_DECOMPRESS_LZ4=y +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_REED_SOLOMON=y +CONFIG_REED_SOLOMON_DEC8=y +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_KMP=y +CONFIG_TEXTSEARCH_BM=y +CONFIG_TEXTSEARCH_FSM=y +CONFIG_ASSOCIATIVE_ARRAY=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT_MAP=y +CONFIG_HAS_DMA=y +CONFIG_CPU_RMAP=y +CONFIG_DQL=y +CONFIG_NLATTR=y +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y +# CONFIG_AVERAGE is not set +CONFIG_CLZ_TAB=y +# CONFIG_CORDIC is not set +# CONFIG_DDR is not set +CONFIG_MPILIB=y +CONFIG_LIBFDT=y +CONFIG_OID_REGISTRY=y +CONFIG_ARCH_HAS_SG_CHAIN=y +# CONFIG_VIRTUALIZATION is not set diff --git a/device/testing/linux-amazon-biscuit/gcc10-extern_YYLOC_global_declaration.patch b/device/testing/linux-amazon-biscuit/gcc10-extern_YYLOC_global_declaration.patch new file mode 100644 index 000000000..ba7744e1a --- /dev/null +++ b/device/testing/linux-amazon-biscuit/gcc10-extern_YYLOC_global_declaration.patch @@ -0,0 +1,27 @@ +Based on https://lkml.org/lkml/2020/4/1/1206. In original patch, YYLOC declaration was removed. +However, using original patch, which removes yylloc declaration on 3.18.14 kernel version results in 'yylloc not declared' error. +See part of the original description below: + +gcc 10 will default to -fno-common, which causes this error at link +time: + + (.text+0x0): multiple definition of `yylloc'; dtc-lexer.lex.o (symbol from plugin):(.text+0x0): first defined here + +This is because both dtc-lexer as well as dtc-parser define the same +global symbol yyloc. Before with -fcommon those were merged into one +defintion. The proper solution would be to to mark this as "extern", +--- + +diff --git a/scripts/dtc/dtc-lexer.lex.c_shipped b/scripts/dtc/dtc-lexer.lex.c_shipped +index 2d30f41..d0eb405 100644 +--- a/scripts/dtc/dtc-lexer.lex.c_shipped ++++ b/scripts/dtc/dtc-lexer.lex.c_shipped +@@ -637,7 +637,7 @@ char *yytext; + #include "srcpos.h" + #include "dtc-parser.tab.h" + +-YYLTYPE yylloc; ++extern YYLTYPE yylloc; + + /* CAUTION: this will stop working if we ever use yyless() or yyunput() */ + #define YY_USER_ACTION \ diff --git a/device/testing/linux-amazon-biscuit/gcc7-give-up-on-ilog2-const-optimizations.patch b/device/testing/linux-amazon-biscuit/gcc7-give-up-on-ilog2-const-optimizations.patch new file mode 120000 index 000000000..da3d1ed41 --- /dev/null +++ b/device/testing/linux-amazon-biscuit/gcc7-give-up-on-ilog2-const-optimizations.patch @@ -0,0 +1 @@ +../../.shared-patches/linux/gcc7-give-up-on-ilog2-const-optimizations.patch \ No newline at end of file diff --git a/device/testing/linux-amazon-biscuit/gcc8-fix-put-user.patch b/device/testing/linux-amazon-biscuit/gcc8-fix-put-user.patch new file mode 120000 index 000000000..1d40b2674 --- /dev/null +++ b/device/testing/linux-amazon-biscuit/gcc8-fix-put-user.patch @@ -0,0 +1 @@ +../../.shared-patches/linux/gcc8-fix-put-user.patch \ No newline at end of file diff --git a/device/testing/linux-amazon-biscuit/replace-missing-code-from-mainline.patch b/device/testing/linux-amazon-biscuit/replace-missing-code-from-mainline.patch new file mode 100644 index 000000000..aecb0aefb --- /dev/null +++ b/device/testing/linux-amazon-biscuit/replace-missing-code-from-mainline.patch @@ -0,0 +1,1359 @@ +Copy missing devtmpfs.c and posix_acl.c from mainline 3.18.19 +--- + +diff --git a/drivers/base/devtmpfs.c b/drivers/base/devtmpfs.c +new file mode 100644 +index 0000000..25798db +--- /dev/null ++++ b/drivers/base/devtmpfs.c +@@ -0,0 +1,443 @@ ++/* ++ * devtmpfs - kernel-maintained tmpfs-based /dev ++ * ++ * Copyright (C) 2009, Kay Sievers ++ * ++ * During bootup, before any driver core device is registered, ++ * devtmpfs, a tmpfs-based filesystem is created. Every driver-core ++ * device which requests a device node, will add a node in this ++ * filesystem. ++ * By default, all devices are named after the name of the device, ++ * owned by root and have a default mode of 0600. Subsystems can ++ * overwrite the default setting if needed. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include "base.h" ++ ++static struct task_struct *thread; ++ ++#if defined CONFIG_DEVTMPFS_MOUNT ++static int mount_dev = 1; ++#else ++static int mount_dev; ++#endif ++ ++static DEFINE_SPINLOCK(req_lock); ++ ++static struct req { ++ struct req *next; ++ struct completion done; ++ int err; ++ const char *name; ++ umode_t mode; /* 0 => delete */ ++ kuid_t uid; ++ kgid_t gid; ++ struct device *dev; ++} *requests; ++ ++static int __init mount_param(char *str) ++{ ++ mount_dev = simple_strtoul(str, NULL, 0); ++ return 1; ++} ++__setup("devtmpfs.mount=", mount_param); ++ ++static struct dentry *dev_mount(struct file_system_type *fs_type, int flags, ++ const char *dev_name, void *data) ++{ ++#ifdef CONFIG_TMPFS ++ return mount_single(fs_type, flags, data, shmem_fill_super); ++#else ++ return mount_single(fs_type, flags, data, ramfs_fill_super); ++#endif ++} ++ ++static struct file_system_type dev_fs_type = { ++ .name = "devtmpfs", ++ .mount = dev_mount, ++ .kill_sb = kill_litter_super, ++}; ++ ++#ifdef CONFIG_BLOCK ++static inline int is_blockdev(struct device *dev) ++{ ++ return dev->class == &block_class; ++} ++#else ++static inline int is_blockdev(struct device *dev) { return 0; } ++#endif ++ ++int devtmpfs_create_node(struct device *dev) ++{ ++ const char *tmp = NULL; ++ struct req req; ++ ++ if (!thread) ++ return 0; ++ ++ req.mode = 0; ++ req.uid = GLOBAL_ROOT_UID; ++ req.gid = GLOBAL_ROOT_GID; ++ req.name = device_get_devnode(dev, &req.mode, &req.uid, &req.gid, &tmp); ++ if (!req.name) ++ return -ENOMEM; ++ ++ if (req.mode == 0) ++ req.mode = 0600; ++ if (is_blockdev(dev)) ++ req.mode |= S_IFBLK; ++ else ++ req.mode |= S_IFCHR; ++ ++ req.dev = dev; ++ ++ init_completion(&req.done); ++ ++ spin_lock(&req_lock); ++ req.next = requests; ++ requests = &req; ++ spin_unlock(&req_lock); ++ ++ wake_up_process(thread); ++ wait_for_completion(&req.done); ++ ++ kfree(tmp); ++ ++ return req.err; ++} ++ ++int devtmpfs_delete_node(struct device *dev) ++{ ++ const char *tmp = NULL; ++ struct req req; ++ ++ if (!thread) ++ return 0; ++ ++ req.name = device_get_devnode(dev, NULL, NULL, NULL, &tmp); ++ if (!req.name) ++ return -ENOMEM; ++ ++ req.mode = 0; ++ req.dev = dev; ++ ++ init_completion(&req.done); ++ ++ spin_lock(&req_lock); ++ req.next = requests; ++ requests = &req; ++ spin_unlock(&req_lock); ++ ++ wake_up_process(thread); ++ wait_for_completion(&req.done); ++ ++ kfree(tmp); ++ return req.err; ++} ++ ++static int dev_mkdir(const char *name, umode_t mode) ++{ ++ struct dentry *dentry; ++ struct path path; ++ int err; ++ ++ dentry = kern_path_create(AT_FDCWD, name, &path, LOOKUP_DIRECTORY); ++ if (IS_ERR(dentry)) ++ return PTR_ERR(dentry); ++ ++ err = vfs_mkdir(path.dentry->d_inode, dentry, mode); ++ if (!err) ++ /* mark as kernel-created inode */ ++ dentry->d_inode->i_private = &thread; ++ done_path_create(&path, dentry); ++ return err; ++} ++ ++static int create_path(const char *nodepath) ++{ ++ char *path; ++ char *s; ++ int err = 0; ++ ++ /* parent directories do not exist, create them */ ++ path = kstrdup(nodepath, GFP_KERNEL); ++ if (!path) ++ return -ENOMEM; ++ ++ s = path; ++ for (;;) { ++ s = strchr(s, '/'); ++ if (!s) ++ break; ++ s[0] = '\0'; ++ err = dev_mkdir(path, 0755); ++ if (err && err != -EEXIST) ++ break; ++ s[0] = '/'; ++ s++; ++ } ++ kfree(path); ++ return err; ++} ++ ++static int handle_create(const char *nodename, umode_t mode, kuid_t uid, ++ kgid_t gid, struct device *dev) ++{ ++ struct dentry *dentry; ++ struct path path; ++ int err; ++ ++ dentry = kern_path_create(AT_FDCWD, nodename, &path, 0); ++ if (dentry == ERR_PTR(-ENOENT)) { ++ create_path(nodename); ++ dentry = kern_path_create(AT_FDCWD, nodename, &path, 0); ++ } ++ if (IS_ERR(dentry)) ++ return PTR_ERR(dentry); ++ ++ err = vfs_mknod(path.dentry->d_inode, dentry, mode, dev->devt); ++ if (!err) { ++ struct iattr newattrs; ++ ++ newattrs.ia_mode = mode; ++ newattrs.ia_uid = uid; ++ newattrs.ia_gid = gid; ++ newattrs.ia_valid = ATTR_MODE|ATTR_UID|ATTR_GID; ++ mutex_lock(&dentry->d_inode->i_mutex); ++ notify_change(dentry, &newattrs, NULL); ++ mutex_unlock(&dentry->d_inode->i_mutex); ++ ++ /* mark as kernel-created inode */ ++ dentry->d_inode->i_private = &thread; ++ } ++ done_path_create(&path, dentry); ++ return err; ++} ++ ++static int dev_rmdir(const char *name) ++{ ++ struct path parent; ++ struct dentry *dentry; ++ int err; ++ ++ dentry = kern_path_locked(name, &parent); ++ if (IS_ERR(dentry)) ++ return PTR_ERR(dentry); ++ if (dentry->d_inode) { ++ if (dentry->d_inode->i_private == &thread) ++ err = vfs_rmdir(parent.dentry->d_inode, dentry); ++ else ++ err = -EPERM; ++ } else { ++ err = -ENOENT; ++ } ++ dput(dentry); ++ mutex_unlock(&parent.dentry->d_inode->i_mutex); ++ path_put(&parent); ++ return err; ++} ++ ++static int delete_path(const char *nodepath) ++{ ++ const char *path; ++ int err = 0; ++ ++ path = kstrdup(nodepath, GFP_KERNEL); ++ if (!path) ++ return -ENOMEM; ++ ++ for (;;) { ++ char *base; ++ ++ base = strrchr(path, '/'); ++ if (!base) ++ break; ++ base[0] = '\0'; ++ err = dev_rmdir(path); ++ if (err) ++ break; ++ } ++ ++ kfree(path); ++ return err; ++} ++ ++static int dev_mynode(struct device *dev, struct inode *inode, struct kstat *stat) ++{ ++ /* did we create it */ ++ if (inode->i_private != &thread) ++ return 0; ++ ++ /* does the dev_t match */ ++ if (is_blockdev(dev)) { ++ if (!S_ISBLK(stat->mode)) ++ return 0; ++ } else { ++ if (!S_ISCHR(stat->mode)) ++ return 0; ++ } ++ if (stat->rdev != dev->devt) ++ return 0; ++ ++ /* ours */ ++ return 1; ++} ++ ++static int handle_remove(const char *nodename, struct device *dev) ++{ ++ struct path parent; ++ struct dentry *dentry; ++ int deleted = 0; ++ int err; ++ ++ dentry = kern_path_locked(nodename, &parent); ++ if (IS_ERR(dentry)) ++ return PTR_ERR(dentry); ++ ++ if (dentry->d_inode) { ++ struct kstat stat; ++ struct path p = {.mnt = parent.mnt, .dentry = dentry}; ++ err = vfs_getattr(&p, &stat); ++ if (!err && dev_mynode(dev, dentry->d_inode, &stat)) { ++ struct iattr newattrs; ++ /* ++ * before unlinking this node, reset permissions ++ * of possible references like hardlinks ++ */ ++ newattrs.ia_uid = GLOBAL_ROOT_UID; ++ newattrs.ia_gid = GLOBAL_ROOT_GID; ++ newattrs.ia_mode = stat.mode & ~0777; ++ newattrs.ia_valid = ++ ATTR_UID|ATTR_GID|ATTR_MODE; ++ mutex_lock(&dentry->d_inode->i_mutex); ++ notify_change(dentry, &newattrs, NULL); ++ mutex_unlock(&dentry->d_inode->i_mutex); ++ err = vfs_unlink(parent.dentry->d_inode, dentry, NULL); ++ if (!err || err == -ENOENT) ++ deleted = 1; ++ } ++ } else { ++ err = -ENOENT; ++ } ++ dput(dentry); ++ mutex_unlock(&parent.dentry->d_inode->i_mutex); ++ ++ path_put(&parent); ++ if (deleted && strchr(nodename, '/')) ++ delete_path(nodename); ++ return err; ++} ++ ++/* ++ * If configured, or requested by the commandline, devtmpfs will be ++ * auto-mounted after the kernel mounted the root filesystem. ++ */ ++int devtmpfs_mount(const char *mntdir) ++{ ++ int err; ++ ++ if (!mount_dev) ++ return 0; ++ ++ if (!thread) ++ return 0; ++ ++ err = sys_mount("devtmpfs", (char *)mntdir, "devtmpfs", MS_SILENT, NULL); ++ if (err) ++ printk(KERN_INFO "devtmpfs: error mounting %i\n", err); ++ else ++ printk(KERN_INFO "devtmpfs: mounted\n"); ++ return err; ++} ++ ++static DECLARE_COMPLETION(setup_done); ++ ++static int handle(const char *name, umode_t mode, kuid_t uid, kgid_t gid, ++ struct device *dev) ++{ ++ if (mode) ++ return handle_create(name, mode, uid, gid, dev); ++ else ++ return handle_remove(name, dev); ++} ++ ++static int devtmpfsd(void *p) ++{ ++ char options[] = "mode=0755"; ++ int *err = p; ++ *err = sys_unshare(CLONE_NEWNS); ++ if (*err) ++ goto out; ++ *err = sys_mount("devtmpfs", "/", "devtmpfs", MS_SILENT, options); ++ if (*err) ++ goto out; ++ sys_chdir("/.."); /* will traverse into overmounted root */ ++ sys_chroot("."); ++ complete(&setup_done); ++ while (1) { ++ spin_lock(&req_lock); ++ while (requests) { ++ struct req *req = requests; ++ requests = NULL; ++ spin_unlock(&req_lock); ++ while (req) { ++ struct req *next = req->next; ++ req->err = handle(req->name, req->mode, ++ req->uid, req->gid, req->dev); ++ complete(&req->done); ++ req = next; ++ } ++ spin_lock(&req_lock); ++ } ++ __set_current_state(TASK_INTERRUPTIBLE); ++ spin_unlock(&req_lock); ++ schedule(); ++ } ++ return 0; ++out: ++ complete(&setup_done); ++ return *err; ++} ++ ++/* ++ * Create devtmpfs instance, driver-core devices will add their device ++ * nodes here. ++ */ ++int __init devtmpfs_init(void) ++{ ++ int err = register_filesystem(&dev_fs_type); ++ if (err) { ++ printk(KERN_ERR "devtmpfs: unable to register devtmpfs " ++ "type %i\n", err); ++ return err; ++ } ++ ++ thread = kthread_run(devtmpfsd, &err, "kdevtmpfs"); ++ if (!IS_ERR(thread)) { ++ wait_for_completion(&setup_done); ++ } else { ++ err = PTR_ERR(thread); ++ thread = NULL; ++ } ++ ++ if (err) { ++ printk(KERN_ERR "devtmpfs: unable to create devtmpfs %i\n", err); ++ unregister_filesystem(&dev_fs_type); ++ return err; ++ } ++ ++ printk(KERN_INFO "devtmpfs: initialized\n"); ++ return 0; ++} +diff --git a/fs/posix_acl.c b/fs/posix_acl.c +new file mode 100644 +index 0000000..0855f77 +--- /dev/null ++++ b/fs/posix_acl.c +@@ -0,0 +1,901 @@ ++/* ++ * Copyright (C) 2002,2003 by Andreas Gruenbacher ++ * ++ * Fixes from William Schumacher incorporated on 15 March 2001. ++ * (Reported by Charles Bertsch, ). ++ */ ++ ++/* ++ * This file contains generic functions for manipulating ++ * POSIX 1003.1e draft standard 17 ACLs. ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++struct posix_acl **acl_by_type(struct inode *inode, int type) ++{ ++ switch (type) { ++ case ACL_TYPE_ACCESS: ++ return &inode->i_acl; ++ case ACL_TYPE_DEFAULT: ++ return &inode->i_default_acl; ++ default: ++ BUG(); ++ } ++} ++EXPORT_SYMBOL(acl_by_type); ++ ++struct posix_acl *get_cached_acl(struct inode *inode, int type) ++{ ++ struct posix_acl **p = acl_by_type(inode, type); ++ struct posix_acl *acl = ACCESS_ONCE(*p); ++ if (acl) { ++ spin_lock(&inode->i_lock); ++ acl = *p; ++ if (acl != ACL_NOT_CACHED) ++ acl = posix_acl_dup(acl); ++ spin_unlock(&inode->i_lock); ++ } ++ return acl; ++} ++EXPORT_SYMBOL(get_cached_acl); ++ ++struct posix_acl *get_cached_acl_rcu(struct inode *inode, int type) ++{ ++ return rcu_dereference(*acl_by_type(inode, type)); ++} ++EXPORT_SYMBOL(get_cached_acl_rcu); ++ ++void set_cached_acl(struct inode *inode, int type, struct posix_acl *acl) ++{ ++ struct posix_acl **p = acl_by_type(inode, type); ++ struct posix_acl *old; ++ spin_lock(&inode->i_lock); ++ old = *p; ++ rcu_assign_pointer(*p, posix_acl_dup(acl)); ++ spin_unlock(&inode->i_lock); ++ if (old != ACL_NOT_CACHED) ++ posix_acl_release(old); ++} ++EXPORT_SYMBOL(set_cached_acl); ++ ++void forget_cached_acl(struct inode *inode, int type) ++{ ++ struct posix_acl **p = acl_by_type(inode, type); ++ struct posix_acl *old; ++ spin_lock(&inode->i_lock); ++ old = *p; ++ *p = ACL_NOT_CACHED; ++ spin_unlock(&inode->i_lock); ++ if (old != ACL_NOT_CACHED) ++ posix_acl_release(old); ++} ++EXPORT_SYMBOL(forget_cached_acl); ++ ++void forget_all_cached_acls(struct inode *inode) ++{ ++ struct posix_acl *old_access, *old_default; ++ spin_lock(&inode->i_lock); ++ old_access = inode->i_acl; ++ old_default = inode->i_default_acl; ++ inode->i_acl = inode->i_default_acl = ACL_NOT_CACHED; ++ spin_unlock(&inode->i_lock); ++ if (old_access != ACL_NOT_CACHED) ++ posix_acl_release(old_access); ++ if (old_default != ACL_NOT_CACHED) ++ posix_acl_release(old_default); ++} ++EXPORT_SYMBOL(forget_all_cached_acls); ++ ++struct posix_acl *get_acl(struct inode *inode, int type) ++{ ++ struct posix_acl *acl; ++ ++ acl = get_cached_acl(inode, type); ++ if (acl != ACL_NOT_CACHED) ++ return acl; ++ ++ if (!IS_POSIXACL(inode)) ++ return NULL; ++ ++ /* ++ * A filesystem can force a ACL callback by just never filling the ++ * ACL cache. But normally you'd fill the cache either at inode ++ * instantiation time, or on the first ->get_acl call. ++ * ++ * If the filesystem doesn't have a get_acl() function at all, we'll ++ * just create the negative cache entry. ++ */ ++ if (!inode->i_op->get_acl) { ++ set_cached_acl(inode, type, NULL); ++ return NULL; ++ } ++ return inode->i_op->get_acl(inode, type); ++} ++EXPORT_SYMBOL(get_acl); ++ ++/* ++ * Init a fresh posix_acl ++ */ ++void ++posix_acl_init(struct posix_acl *acl, int count) ++{ ++ atomic_set(&acl->a_refcount, 1); ++ acl->a_count = count; ++} ++EXPORT_SYMBOL(posix_acl_init); ++ ++/* ++ * Allocate a new ACL with the specified number of entries. ++ */ ++struct posix_acl * ++posix_acl_alloc(int count, gfp_t flags) ++{ ++ const size_t size = sizeof(struct posix_acl) + ++ count * sizeof(struct posix_acl_entry); ++ struct posix_acl *acl = kmalloc(size, flags); ++ if (acl) ++ posix_acl_init(acl, count); ++ return acl; ++} ++EXPORT_SYMBOL(posix_acl_alloc); ++ ++/* ++ * Clone an ACL. ++ */ ++static struct posix_acl * ++posix_acl_clone(const struct posix_acl *acl, gfp_t flags) ++{ ++ struct posix_acl *clone = NULL; ++ ++ if (acl) { ++ int size = sizeof(struct posix_acl) + acl->a_count * ++ sizeof(struct posix_acl_entry); ++ clone = kmemdup(acl, size, flags); ++ if (clone) ++ atomic_set(&clone->a_refcount, 1); ++ } ++ return clone; ++} ++ ++/* ++ * Check if an acl is valid. Returns 0 if it is, or -E... otherwise. ++ */ ++int ++posix_acl_valid(const struct posix_acl *acl) ++{ ++ const struct posix_acl_entry *pa, *pe; ++ int state = ACL_USER_OBJ; ++ int needs_mask = 0; ++ ++ FOREACH_ACL_ENTRY(pa, acl, pe) { ++ if (pa->e_perm & ~(ACL_READ|ACL_WRITE|ACL_EXECUTE)) ++ return -EINVAL; ++ switch (pa->e_tag) { ++ case ACL_USER_OBJ: ++ if (state == ACL_USER_OBJ) { ++ state = ACL_USER; ++ break; ++ } ++ return -EINVAL; ++ ++ case ACL_USER: ++ if (state != ACL_USER) ++ return -EINVAL; ++ if (!uid_valid(pa->e_uid)) ++ return -EINVAL; ++ needs_mask = 1; ++ break; ++ ++ case ACL_GROUP_OBJ: ++ if (state == ACL_USER) { ++ state = ACL_GROUP; ++ break; ++ } ++ return -EINVAL; ++ ++ case ACL_GROUP: ++ if (state != ACL_GROUP) ++ return -EINVAL; ++ if (!gid_valid(pa->e_gid)) ++ return -EINVAL; ++ needs_mask = 1; ++ break; ++ ++ case ACL_MASK: ++ if (state != ACL_GROUP) ++ return -EINVAL; ++ state = ACL_OTHER; ++ break; ++ ++ case ACL_OTHER: ++ if (state == ACL_OTHER || ++ (state == ACL_GROUP && !needs_mask)) { ++ state = 0; ++ break; ++ } ++ return -EINVAL; ++ ++ default: ++ return -EINVAL; ++ } ++ } ++ if (state == 0) ++ return 0; ++ return -EINVAL; ++} ++EXPORT_SYMBOL(posix_acl_valid); ++ ++/* ++ * Returns 0 if the acl can be exactly represented in the traditional ++ * file mode permission bits, or else 1. Returns -E... on error. ++ */ ++int ++posix_acl_equiv_mode(const struct posix_acl *acl, umode_t *mode_p) ++{ ++ const struct posix_acl_entry *pa, *pe; ++ umode_t mode = 0; ++ int not_equiv = 0; ++ ++ /* ++ * A null ACL can always be presented as mode bits. ++ */ ++ if (!acl) ++ return 0; ++ ++ FOREACH_ACL_ENTRY(pa, acl, pe) { ++ switch (pa->e_tag) { ++ case ACL_USER_OBJ: ++ mode |= (pa->e_perm & S_IRWXO) << 6; ++ break; ++ case ACL_GROUP_OBJ: ++ mode |= (pa->e_perm & S_IRWXO) << 3; ++ break; ++ case ACL_OTHER: ++ mode |= pa->e_perm & S_IRWXO; ++ break; ++ case ACL_MASK: ++ mode = (mode & ~S_IRWXG) | ++ ((pa->e_perm & S_IRWXO) << 3); ++ not_equiv = 1; ++ break; ++ case ACL_USER: ++ case ACL_GROUP: ++ not_equiv = 1; ++ break; ++ default: ++ return -EINVAL; ++ } ++ } ++ if (mode_p) ++ *mode_p = (*mode_p & ~S_IRWXUGO) | mode; ++ return not_equiv; ++} ++EXPORT_SYMBOL(posix_acl_equiv_mode); ++ ++/* ++ * Create an ACL representing the file mode permission bits of an inode. ++ */ ++struct posix_acl * ++posix_acl_from_mode(umode_t mode, gfp_t flags) ++{ ++ struct posix_acl *acl = posix_acl_alloc(3, flags); ++ if (!acl) ++ return ERR_PTR(-ENOMEM); ++ ++ acl->a_entries[0].e_tag = ACL_USER_OBJ; ++ acl->a_entries[0].e_perm = (mode & S_IRWXU) >> 6; ++ ++ acl->a_entries[1].e_tag = ACL_GROUP_OBJ; ++ acl->a_entries[1].e_perm = (mode & S_IRWXG) >> 3; ++ ++ acl->a_entries[2].e_tag = ACL_OTHER; ++ acl->a_entries[2].e_perm = (mode & S_IRWXO); ++ return acl; ++} ++EXPORT_SYMBOL(posix_acl_from_mode); ++ ++/* ++ * Return 0 if current is granted want access to the inode ++ * by the acl. Returns -E... otherwise. ++ */ ++int ++posix_acl_permission(struct inode *inode, const struct posix_acl *acl, int want) ++{ ++ const struct posix_acl_entry *pa, *pe, *mask_obj; ++ int found = 0; ++ ++ want &= MAY_READ | MAY_WRITE | MAY_EXEC | MAY_NOT_BLOCK; ++ ++ FOREACH_ACL_ENTRY(pa, acl, pe) { ++ switch(pa->e_tag) { ++ case ACL_USER_OBJ: ++ /* (May have been checked already) */ ++ if (uid_eq(inode->i_uid, current_fsuid())) ++ goto check_perm; ++ break; ++ case ACL_USER: ++ if (uid_eq(pa->e_uid, current_fsuid())) ++ goto mask; ++ break; ++ case ACL_GROUP_OBJ: ++ if (in_group_p(inode->i_gid)) { ++ found = 1; ++ if ((pa->e_perm & want) == want) ++ goto mask; ++ } ++ break; ++ case ACL_GROUP: ++ if (in_group_p(pa->e_gid)) { ++ found = 1; ++ if ((pa->e_perm & want) == want) ++ goto mask; ++ } ++ break; ++ case ACL_MASK: ++ break; ++ case ACL_OTHER: ++ if (found) ++ return -EACCES; ++ else ++ goto check_perm; ++ default: ++ return -EIO; ++ } ++ } ++ return -EIO; ++ ++mask: ++ for (mask_obj = pa+1; mask_obj != pe; mask_obj++) { ++ if (mask_obj->e_tag == ACL_MASK) { ++ if ((pa->e_perm & mask_obj->e_perm & want) == want) ++ return 0; ++ return -EACCES; ++ } ++ } ++ ++check_perm: ++ if ((pa->e_perm & want) == want) ++ return 0; ++ return -EACCES; ++} ++ ++/* ++ * Modify acl when creating a new inode. The caller must ensure the acl is ++ * only referenced once. ++ * ++ * mode_p initially must contain the mode parameter to the open() / creat() ++ * system calls. All permissions that are not granted by the acl are removed. ++ * The permissions in the acl are changed to reflect the mode_p parameter. ++ */ ++static int posix_acl_create_masq(struct posix_acl *acl, umode_t *mode_p) ++{ ++ struct posix_acl_entry *pa, *pe; ++ struct posix_acl_entry *group_obj = NULL, *mask_obj = NULL; ++ umode_t mode = *mode_p; ++ int not_equiv = 0; ++ ++ /* assert(atomic_read(acl->a_refcount) == 1); */ ++ ++ FOREACH_ACL_ENTRY(pa, acl, pe) { ++ switch(pa->e_tag) { ++ case ACL_USER_OBJ: ++ pa->e_perm &= (mode >> 6) | ~S_IRWXO; ++ mode &= (pa->e_perm << 6) | ~S_IRWXU; ++ break; ++ ++ case ACL_USER: ++ case ACL_GROUP: ++ not_equiv = 1; ++ break; ++ ++ case ACL_GROUP_OBJ: ++ group_obj = pa; ++ break; ++ ++ case ACL_OTHER: ++ pa->e_perm &= mode | ~S_IRWXO; ++ mode &= pa->e_perm | ~S_IRWXO; ++ break; ++ ++ case ACL_MASK: ++ mask_obj = pa; ++ not_equiv = 1; ++ break; ++ ++ default: ++ return -EIO; ++ } ++ } ++ ++ if (mask_obj) { ++ mask_obj->e_perm &= (mode >> 3) | ~S_IRWXO; ++ mode &= (mask_obj->e_perm << 3) | ~S_IRWXG; ++ } else { ++ if (!group_obj) ++ return -EIO; ++ group_obj->e_perm &= (mode >> 3) | ~S_IRWXO; ++ mode &= (group_obj->e_perm << 3) | ~S_IRWXG; ++ } ++ ++ *mode_p = (*mode_p & ~S_IRWXUGO) | mode; ++ return not_equiv; ++} ++ ++/* ++ * Modify the ACL for the chmod syscall. ++ */ ++static int __posix_acl_chmod_masq(struct posix_acl *acl, umode_t mode) ++{ ++ struct posix_acl_entry *group_obj = NULL, *mask_obj = NULL; ++ struct posix_acl_entry *pa, *pe; ++ ++ /* assert(atomic_read(acl->a_refcount) == 1); */ ++ ++ FOREACH_ACL_ENTRY(pa, acl, pe) { ++ switch(pa->e_tag) { ++ case ACL_USER_OBJ: ++ pa->e_perm = (mode & S_IRWXU) >> 6; ++ break; ++ ++ case ACL_USER: ++ case ACL_GROUP: ++ break; ++ ++ case ACL_GROUP_OBJ: ++ group_obj = pa; ++ break; ++ ++ case ACL_MASK: ++ mask_obj = pa; ++ break; ++ ++ case ACL_OTHER: ++ pa->e_perm = (mode & S_IRWXO); ++ break; ++ ++ default: ++ return -EIO; ++ } ++ } ++ ++ if (mask_obj) { ++ mask_obj->e_perm = (mode & S_IRWXG) >> 3; ++ } else { ++ if (!group_obj) ++ return -EIO; ++ group_obj->e_perm = (mode & S_IRWXG) >> 3; ++ } ++ ++ return 0; ++} ++ ++int ++__posix_acl_create(struct posix_acl **acl, gfp_t gfp, umode_t *mode_p) ++{ ++ struct posix_acl *clone = posix_acl_clone(*acl, gfp); ++ int err = -ENOMEM; ++ if (clone) { ++ err = posix_acl_create_masq(clone, mode_p); ++ if (err < 0) { ++ posix_acl_release(clone); ++ clone = NULL; ++ } ++ } ++ posix_acl_release(*acl); ++ *acl = clone; ++ return err; ++} ++EXPORT_SYMBOL(__posix_acl_create); ++ ++int ++__posix_acl_chmod(struct posix_acl **acl, gfp_t gfp, umode_t mode) ++{ ++ struct posix_acl *clone = posix_acl_clone(*acl, gfp); ++ int err = -ENOMEM; ++ if (clone) { ++ err = __posix_acl_chmod_masq(clone, mode); ++ if (err) { ++ posix_acl_release(clone); ++ clone = NULL; ++ } ++ } ++ posix_acl_release(*acl); ++ *acl = clone; ++ return err; ++} ++EXPORT_SYMBOL(__posix_acl_chmod); ++ ++int ++posix_acl_chmod(struct inode *inode, umode_t mode) ++{ ++ struct posix_acl *acl; ++ int ret = 0; ++ ++ if (!IS_POSIXACL(inode)) ++ return 0; ++ if (!inode->i_op->set_acl) ++ return -EOPNOTSUPP; ++ ++ acl = get_acl(inode, ACL_TYPE_ACCESS); ++ if (IS_ERR_OR_NULL(acl)) { ++ if (acl == ERR_PTR(-EOPNOTSUPP)) ++ return 0; ++ return PTR_ERR(acl); ++ } ++ ++ ret = __posix_acl_chmod(&acl, GFP_KERNEL, mode); ++ if (ret) ++ return ret; ++ ret = inode->i_op->set_acl(inode, acl, ACL_TYPE_ACCESS); ++ posix_acl_release(acl); ++ return ret; ++} ++EXPORT_SYMBOL(posix_acl_chmod); ++ ++int ++posix_acl_create(struct inode *dir, umode_t *mode, ++ struct posix_acl **default_acl, struct posix_acl **acl) ++{ ++ struct posix_acl *p; ++ int ret; ++ ++ if (S_ISLNK(*mode) || !IS_POSIXACL(dir)) ++ goto no_acl; ++ ++ p = get_acl(dir, ACL_TYPE_DEFAULT); ++ if (IS_ERR(p)) { ++ if (p == ERR_PTR(-EOPNOTSUPP)) ++ goto apply_umask; ++ return PTR_ERR(p); ++ } ++ ++ if (!p) ++ goto apply_umask; ++ ++ *acl = posix_acl_clone(p, GFP_NOFS); ++ if (!*acl) ++ return -ENOMEM; ++ ++ ret = posix_acl_create_masq(*acl, mode); ++ if (ret < 0) { ++ posix_acl_release(*acl); ++ return -ENOMEM; ++ } ++ ++ if (ret == 0) { ++ posix_acl_release(*acl); ++ *acl = NULL; ++ } ++ ++ if (!S_ISDIR(*mode)) { ++ posix_acl_release(p); ++ *default_acl = NULL; ++ } else { ++ *default_acl = p; ++ } ++ return 0; ++ ++apply_umask: ++ *mode &= ~current_umask(); ++no_acl: ++ *default_acl = NULL; ++ *acl = NULL; ++ return 0; ++} ++EXPORT_SYMBOL_GPL(posix_acl_create); ++ ++/* ++ * Fix up the uids and gids in posix acl extended attributes in place. ++ */ ++static void posix_acl_fix_xattr_userns( ++ struct user_namespace *to, struct user_namespace *from, ++ void *value, size_t size) ++{ ++ posix_acl_xattr_header *header = (posix_acl_xattr_header *)value; ++ posix_acl_xattr_entry *entry = (posix_acl_xattr_entry *)(header+1), *end; ++ int count; ++ kuid_t uid; ++ kgid_t gid; ++ ++ if (!value) ++ return; ++ if (size < sizeof(posix_acl_xattr_header)) ++ return; ++ if (header->a_version != cpu_to_le32(POSIX_ACL_XATTR_VERSION)) ++ return; ++ ++ count = posix_acl_xattr_count(size); ++ if (count < 0) ++ return; ++ if (count == 0) ++ return; ++ ++ for (end = entry + count; entry != end; entry++) { ++ switch(le16_to_cpu(entry->e_tag)) { ++ case ACL_USER: ++ uid = make_kuid(from, le32_to_cpu(entry->e_id)); ++ entry->e_id = cpu_to_le32(from_kuid(to, uid)); ++ break; ++ case ACL_GROUP: ++ gid = make_kgid(from, le32_to_cpu(entry->e_id)); ++ entry->e_id = cpu_to_le32(from_kgid(to, gid)); ++ break; ++ default: ++ break; ++ } ++ } ++} ++ ++void posix_acl_fix_xattr_from_user(void *value, size_t size) ++{ ++ struct user_namespace *user_ns = current_user_ns(); ++ if (user_ns == &init_user_ns) ++ return; ++ posix_acl_fix_xattr_userns(&init_user_ns, user_ns, value, size); ++} ++ ++void posix_acl_fix_xattr_to_user(void *value, size_t size) ++{ ++ struct user_namespace *user_ns = current_user_ns(); ++ if (user_ns == &init_user_ns) ++ return; ++ posix_acl_fix_xattr_userns(user_ns, &init_user_ns, value, size); ++} ++ ++/* ++ * Convert from extended attribute to in-memory representation. ++ */ ++struct posix_acl * ++posix_acl_from_xattr(struct user_namespace *user_ns, ++ const void *value, size_t size) ++{ ++ posix_acl_xattr_header *header = (posix_acl_xattr_header *)value; ++ posix_acl_xattr_entry *entry = (posix_acl_xattr_entry *)(header+1), *end; ++ int count; ++ struct posix_acl *acl; ++ struct posix_acl_entry *acl_e; ++ ++ if (!value) ++ return NULL; ++ if (size < sizeof(posix_acl_xattr_header)) ++ return ERR_PTR(-EINVAL); ++ if (header->a_version != cpu_to_le32(POSIX_ACL_XATTR_VERSION)) ++ return ERR_PTR(-EOPNOTSUPP); ++ ++ count = posix_acl_xattr_count(size); ++ if (count < 0) ++ return ERR_PTR(-EINVAL); ++ if (count == 0) ++ return NULL; ++ ++ acl = posix_acl_alloc(count, GFP_NOFS); ++ if (!acl) ++ return ERR_PTR(-ENOMEM); ++ acl_e = acl->a_entries; ++ ++ for (end = entry + count; entry != end; acl_e++, entry++) { ++ acl_e->e_tag = le16_to_cpu(entry->e_tag); ++ acl_e->e_perm = le16_to_cpu(entry->e_perm); ++ ++ switch(acl_e->e_tag) { ++ case ACL_USER_OBJ: ++ case ACL_GROUP_OBJ: ++ case ACL_MASK: ++ case ACL_OTHER: ++ break; ++ ++ case ACL_USER: ++ acl_e->e_uid = ++ make_kuid(user_ns, ++ le32_to_cpu(entry->e_id)); ++ if (!uid_valid(acl_e->e_uid)) ++ goto fail; ++ break; ++ case ACL_GROUP: ++ acl_e->e_gid = ++ make_kgid(user_ns, ++ le32_to_cpu(entry->e_id)); ++ if (!gid_valid(acl_e->e_gid)) ++ goto fail; ++ break; ++ ++ default: ++ goto fail; ++ } ++ } ++ return acl; ++ ++fail: ++ posix_acl_release(acl); ++ return ERR_PTR(-EINVAL); ++} ++EXPORT_SYMBOL (posix_acl_from_xattr); ++ ++/* ++ * Convert from in-memory to extended attribute representation. ++ */ ++int ++posix_acl_to_xattr(struct user_namespace *user_ns, const struct posix_acl *acl, ++ void *buffer, size_t size) ++{ ++ posix_acl_xattr_header *ext_acl = (posix_acl_xattr_header *)buffer; ++ posix_acl_xattr_entry *ext_entry; ++ int real_size, n; ++ ++ real_size = posix_acl_xattr_size(acl->a_count); ++ if (!buffer) ++ return real_size; ++ if (real_size > size) ++ return -ERANGE; ++ ++ ext_entry = ext_acl->a_entries; ++ ext_acl->a_version = cpu_to_le32(POSIX_ACL_XATTR_VERSION); ++ ++ for (n=0; n < acl->a_count; n++, ext_entry++) { ++ const struct posix_acl_entry *acl_e = &acl->a_entries[n]; ++ ext_entry->e_tag = cpu_to_le16(acl_e->e_tag); ++ ext_entry->e_perm = cpu_to_le16(acl_e->e_perm); ++ switch(acl_e->e_tag) { ++ case ACL_USER: ++ ext_entry->e_id = ++ cpu_to_le32(from_kuid(user_ns, acl_e->e_uid)); ++ break; ++ case ACL_GROUP: ++ ext_entry->e_id = ++ cpu_to_le32(from_kgid(user_ns, acl_e->e_gid)); ++ break; ++ default: ++ ext_entry->e_id = cpu_to_le32(ACL_UNDEFINED_ID); ++ break; ++ } ++ } ++ return real_size; ++} ++EXPORT_SYMBOL (posix_acl_to_xattr); ++ ++static int ++posix_acl_xattr_get(struct dentry *dentry, const char *name, ++ void *value, size_t size, int type) ++{ ++ struct posix_acl *acl; ++ int error; ++ ++ if (!IS_POSIXACL(dentry->d_inode)) ++ return -EOPNOTSUPP; ++ if (S_ISLNK(dentry->d_inode->i_mode)) ++ return -EOPNOTSUPP; ++ ++ acl = get_acl(dentry->d_inode, type); ++ if (IS_ERR(acl)) ++ return PTR_ERR(acl); ++ if (acl == NULL) ++ return -ENODATA; ++ ++ error = posix_acl_to_xattr(&init_user_ns, acl, value, size); ++ posix_acl_release(acl); ++ ++ return error; ++} ++ ++static int ++posix_acl_xattr_set(struct dentry *dentry, const char *name, ++ const void *value, size_t size, int flags, int type) ++{ ++ struct inode *inode = dentry->d_inode; ++ struct posix_acl *acl = NULL; ++ int ret; ++ ++ if (!IS_POSIXACL(inode)) ++ return -EOPNOTSUPP; ++ if (!inode->i_op->set_acl) ++ return -EOPNOTSUPP; ++ ++ if (type == ACL_TYPE_DEFAULT && !S_ISDIR(inode->i_mode)) ++ return value ? -EACCES : 0; ++ if (!inode_owner_or_capable(inode)) ++ return -EPERM; ++ ++ if (value) { ++ acl = posix_acl_from_xattr(&init_user_ns, value, size); ++ if (IS_ERR(acl)) ++ return PTR_ERR(acl); ++ ++ if (acl) { ++ ret = posix_acl_valid(acl); ++ if (ret) ++ goto out; ++ } ++ } ++ ++ ret = inode->i_op->set_acl(inode, acl, type); ++out: ++ posix_acl_release(acl); ++ return ret; ++} ++ ++static size_t ++posix_acl_xattr_list(struct dentry *dentry, char *list, size_t list_size, ++ const char *name, size_t name_len, int type) ++{ ++ const char *xname; ++ size_t size; ++ ++ if (!IS_POSIXACL(dentry->d_inode)) ++ return -EOPNOTSUPP; ++ if (S_ISLNK(dentry->d_inode->i_mode)) ++ return -EOPNOTSUPP; ++ ++ if (type == ACL_TYPE_ACCESS) ++ xname = POSIX_ACL_XATTR_ACCESS; ++ else ++ xname = POSIX_ACL_XATTR_DEFAULT; ++ ++ size = strlen(xname) + 1; ++ if (list && size <= list_size) ++ memcpy(list, xname, size); ++ return size; ++} ++ ++const struct xattr_handler posix_acl_access_xattr_handler = { ++ .prefix = POSIX_ACL_XATTR_ACCESS, ++ .flags = ACL_TYPE_ACCESS, ++ .list = posix_acl_xattr_list, ++ .get = posix_acl_xattr_get, ++ .set = posix_acl_xattr_set, ++}; ++EXPORT_SYMBOL_GPL(posix_acl_access_xattr_handler); ++ ++const struct xattr_handler posix_acl_default_xattr_handler = { ++ .prefix = POSIX_ACL_XATTR_DEFAULT, ++ .flags = ACL_TYPE_DEFAULT, ++ .list = posix_acl_xattr_list, ++ .get = posix_acl_xattr_get, ++ .set = posix_acl_xattr_set, ++}; ++EXPORT_SYMBOL_GPL(posix_acl_default_xattr_handler); ++ ++int simple_set_acl(struct inode *inode, struct posix_acl *acl, int type) ++{ ++ int error; ++ ++ if (type == ACL_TYPE_ACCESS) { ++ error = posix_acl_equiv_mode(acl, &inode->i_mode); ++ if (error < 0) ++ return 0; ++ if (error == 0) ++ acl = NULL; ++ } ++ ++ inode->i_ctime = CURRENT_TIME; ++ set_cached_acl(inode, type, acl); ++ return 0; ++} ++ ++int simple_acl_create(struct inode *dir, struct inode *inode) ++{ ++ struct posix_acl *default_acl, *acl; ++ int error; ++ ++ error = posix_acl_create(dir, &inode->i_mode, &default_acl, &acl); ++ if (error) ++ return error; ++ ++ set_cached_acl(inode, ACL_TYPE_DEFAULT, default_acl); ++ set_cached_acl(inode, ACL_TYPE_ACCESS, acl); ++ ++ if (default_acl) ++ posix_acl_release(default_acl); ++ if (acl) ++ posix_acl_release(acl); ++ return 0; ++} diff --git a/device/testing/linux-amazon-biscuit/replace-solaris-style-directive.patch b/device/testing/linux-amazon-biscuit/replace-solaris-style-directive.patch new file mode 100644 index 000000000..3de372cbf --- /dev/null +++ b/device/testing/linux-amazon-biscuit/replace-solaris-style-directive.patch @@ -0,0 +1,46 @@ +From 790756c7e0229dedc83bf058ac69633045b1000e Mon Sep 17 00:00:00 2001 +From: Nick Desaulniers +Date: Mon, 4 Nov 2019 19:31:45 +0100 +Subject: [PATCH] ARM: 8933/1: replace Sun/Solaris style flag on section directive + +It looks like a section directive was using "Solaris style" to declare +the section flags. Replace this with the GNU style so that Clang's +integrated assembler can assemble this directive. +--- + +diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S +index 3f25fac..a5606a0 100644 +--- a/arch/arm/boot/compressed/head.S ++++ b/arch/arm/boot/compressed/head.S +@@ -109,7 +109,7 @@ + #endif + .endm + +- .section ".start", #alloc, #execinstr ++ .section ".start", "ax" + /* + * sort out different calling conventions + */ +diff --git a/arch/arm/boot/compressed/piggy.gzip.S b/arch/arm/boot/compressed/piggy.gzip.S +index a68adf9..7de824f 100644 +--- a/arch/arm/boot/compressed/piggy.gzip.S ++++ b/arch/arm/boot/compressed/piggy.gzip.S +@@ -1,4 +1,4 @@ +- .section .piggydata,#alloc ++ .section .piggydata,"a" + .globl input_data + input_data: + .incbin "arch/arm/boot/compressed/piggy.gzip" +diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S +index 22ac2a6..68744e1 100644 +--- a/arch/arm/mm/proc-v7.S ++++ b/arch/arm/mm/proc-v7.S +@@ -462,7 +462,7 @@ __v7_setup_stack: + string cpu_elf_name, "v7" + .align + +- .section ".proc.info.init", #alloc, #execinstr ++ .section ".proc.info.init", "ax" + + /* + * Standard v7 proc info content diff --git a/device/testing/linux-amazon-biscuit/x509-certificate-list.patch b/device/testing/linux-amazon-biscuit/x509-certificate-list.patch new file mode 100644 index 000000000..03fba33c3 --- /dev/null +++ b/device/testing/linux-amazon-biscuit/x509-certificate-list.patch @@ -0,0 +1,24 @@ +Replace broken custom cert list script with mainline 3.18.19 version +--- + +diff --git a/kernel/Makefile b/kernel/Makefile +index 9f8b0d8..a61e4a7 100644 +--- a/kernel/Makefile ++++ b/kernel/Makefile +@@ -144,12 +144,12 @@ endif + + kernel/system_certificates.o: $(obj)/x509_certificate_list + +-quiet_cmd_extract_certs = EXTRACT_CERTS $(patsubst "%",%,$(2)) +- cmd_extract_certs = scripts/extract-cert $(2) $@ || ( rm $@; exit 1) ++quiet_cmd_x509certs = CERTS $@ ++ cmd_x509certs = cat $(X509_CERTIFICATES) /dev/null >$@ $(foreach X509,$(X509_CERTIFICATES),; echo " - Including cert $(X509)") + + targets += $(obj)/x509_certificate_list +-$(obj)/x509_certificate_list: scripts/extract-cert $(X509_CERTIFICATES) $(obj)/.x509.list FORCE +- $(call if_changed,extract_certs,verity-keys) ++$(obj)/x509_certificate_list: $(X509_CERTIFICATES) $(obj)/.x509.list ++ $(call if_changed,x509certs) + + targets += $(obj)/.x509.list + $(obj)/.x509.list: