| | |
| | | diff -Nuar linux-at91/arch/arm/boot/dts/at91-sama5d4_xplained.dts linux-at91-sama5d4/arch/arm/boot/dts/at91-sama5d4_xplained.dts |
| | | --- linux-at91/arch/arm/boot/dts/at91-sama5d4_xplained.dts 2019-08-18 17:24:46.000000000 +0800 |
| | | +++ linux-at91-sama5d4/arch/arm/boot/dts/at91-sama5d4_xplained.dts 2019-08-22 23:05:47.351524760 +0800 |
| | | @@ -128,6 +128,12 @@ |
| | | --- linux-at91/arch/arm/boot/dts/at91-sama5d4_xplained.dts 2019-07-10 18:07:41.000000000 +0800 |
| | | +++ linux-at91-sama5d4/arch/arm/boot/dts/at91-sama5d4_xplained.dts 2019-08-26 01:03:57.000632839 +0800 |
| | | @@ -91,7 +91,23 @@ |
| | | |
| | | spi1: spi@fc018000 { |
| | | cs-gpios = <&pioB 21 0>; |
| | | status = "okay"; |
| | | - status = "okay"; |
| | | + status = "okay"; |
| | | + |
| | | + spidev@0 { |
| | | + /* add spidev by guowenxue, 2019.8.25 */ |
| | | + /* |
| | | + spidev@0 { |
| | | + compatible = "linux,spidev"; |
| | | + spi-max-frequency = <24000000>; |
| | | + reg = <0>; |
| | | + }; |
| | | + */ |
| | | + bal: nxprdlib-bal@0 { |
| | | + compatible = "nxp,bal"; |
| | | + reg = <0>; |
| | | + busy-pin-gpio = <&pioD 9 0>; |
| | | + spi-max-frequency = <6000000>; |
| | | + status = "okay"; |
| | | + }; |
| | | }; |
| | | |
| | | adc0: adc@fc034000 { |
| | | @@ -201,35 +207,25 @@ |
| | | atmel,has-pmecc; |
| | | status = "okay"; |
| | | tcb2: timer@fc024000 { |
| | | @@ -193,40 +209,26 @@ |
| | | #address-cells = <1>; |
| | | #size-cells = <1>; |
| | | |
| | | - at91bootstrap@0 { |
| | | - label = "at91bootstrap"; |
| | | - reg = <0x0 0x40000>; |
| | | - }; |
| | | - at91bootstrap@0 { |
| | | - label = "at91bootstrap"; |
| | | - reg = <0x0 0x40000>; |
| | | - }; |
| | | - |
| | | - bootloader@40000 { |
| | | - label = "bootloader"; |
| | | - reg = <0x40000 0x80000>; |
| | | - }; |
| | | - bootloader@40000 { |
| | | - label = "bootloader"; |
| | | - reg = <0x40000 0xc0000>; |
| | | - }; |
| | | - |
| | | - bootloaderenv@c0000 { |
| | | - label = "bootloader env"; |
| | | - reg = <0xc0000 0xc0000>; |
| | | - }; |
| | | - bootloaderenvred@100000 { |
| | | - label = "bootloader env redundant"; |
| | | - reg = <0x100000 0x40000>; |
| | | - }; |
| | | - |
| | | - dtb@180000 { |
| | | - label = "device tree"; |
| | | - reg = <0x180000 0x80000>; |
| | | - }; |
| | | - bootloaderenv@140000 { |
| | | - label = "bootloader env"; |
| | | - reg = <0x140000 0x40000>; |
| | | - }; |
| | | - |
| | | - kernel@200000 { |
| | | - label = "kernel"; |
| | | - reg = <0x200000 0x600000>; |
| | | - }; |
| | | - dtb@180000 { |
| | | - label = "device tree"; |
| | | - reg = <0x180000 0x80000>; |
| | | - }; |
| | | - |
| | | - rootfs@800000 { |
| | | - label = "rootfs"; |
| | | - reg = <0x800000 0x0f800000>; |
| | | - }; |
| | | + bootloader@0 { /* 1MB: 0~40000(bootstrap) 40000~C0000(u-boot.bin) C0000~100000(u-boot.env) */ |
| | | + label = "bootloader"; |
| | | + reg = <0x0 0x100000>; |
| | | + }; |
| | | - kernel@200000 { |
| | | - label = "kernel"; |
| | | - reg = <0x200000 0x600000>; |
| | | - }; |
| | | - |
| | | - rootfs@800000 { |
| | | - label = "rootfs"; |
| | | - reg = <0x800000 0x1f800000>; |
| | | - }; |
| | | + /* modify nandflash partition by guowenxue, 2019.08.25 */ |
| | | + bootloader@0 { /* 1MB: 0~40000(bootstrap) 40000~C0000(u-boot.bin) C0000~100000(u-boot.env) */ |
| | | + label = "bootloader"; |
| | | + reg = <0x0 0x100000>; |
| | | + }; |
| | | + |
| | | + linux@100000 { /* 7MB */ |
| | | + label = "linux"; |
| | | + reg = <0x100000 0x700000>; |
| | | + }; |
| | | + linux@100000 { /* 7MB */ |
| | | + label = "linux"; |
| | | + reg = <0x100000 0x700000>; |
| | | + }; |
| | | + |
| | | + rootfs@800000 { /* 200MB */ |
| | | + label = "rootfs"; |
| | | + reg = <0x800000 0xc800000>; |
| | | + }; |
| | | + rootfs@800000 { /* 200MB */ |
| | | + label = "rootfs"; |
| | | + reg = <0x800000 0xc800000>; |
| | | + }; |
| | | + |
| | | + apps@800000 { /* 48MB */ |
| | | + label = "apps"; |
| | | + reg = <0xD000000 0x3000000>; |
| | | + }; |
| | | }; |
| | | }; |
| | | |
| | | + apps@800000 { /* 48MB */ |
| | | + label = "apps"; |
| | | + reg = <0xD000000 0x3000000>; |
| | | + }; |
| | | }; |
| | | }; |
| | | }; |
| | | diff -Nuar linux-at91/build.sh linux-at91-sama5d4/build.sh |
| | | --- linux-at91/build.sh 1970-01-01 08:00:00.000000000 +0800 |
| | | +++ linux-at91-sama5d4/build.sh 2019-08-22 23:15:52.059536360 +0800 |
| | | +++ linux-at91-sama5d4/build.sh 2019-08-26 00:44:57.984610990 +0800 |
| | | @@ -0,0 +1,85 @@ |
| | | +#!/bin/bash |
| | | + |
| | |
| | | + |
| | | diff -Nuar linux-at91/.cfg-sama5d4 linux-at91-sama5d4/.cfg-sama5d4 |
| | | --- linux-at91/.cfg-sama5d4 1970-01-01 08:00:00.000000000 +0800 |
| | | +++ linux-at91-sama5d4/.cfg-sama5d4 2019-08-23 00:02:44.587590311 +0800 |
| | | @@ -0,0 +1,4073 @@ |
| | | +++ linux-at91-sama5d4/.cfg-sama5d4 2019-08-26 01:08:24.548637971 +0800 |
| | | @@ -0,0 +1,4387 @@ |
| | | +# |
| | | +# Automatically generated file; DO NOT EDIT. |
| | | +# Linux/arm 4.9.151-linux4sam_5.8+ Kernel Configuration |
| | | +# Linux/arm 4.19.56-linux4sam-6.1 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_FIX_EARLYCON_MEM=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_PGTABLE_LEVELS=2 |
| | | +CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config" |
| | | + |
| | | +# |
| | | +# Compiler: arm-linux-gcc.br_real (Buildroot 2019.02.4) 7.4.0 |
| | | +# |
| | | +CONFIG_CC_IS_GCC=y |
| | | +CONFIG_GCC_VERSION=70400 |
| | | +CONFIG_CLANG_VERSION=0 |
| | | +CONFIG_CC_HAS_ASM_GOTO=y |
| | | +CONFIG_IRQ_WORK=y |
| | | +CONFIG_BUILDTIME_EXTABLE_SORT=y |
| | | + |
| | |
| | | +# |
| | | +CONFIG_BROKEN_ON_SMP=y |
| | | +CONFIG_INIT_ENV_ARG_LIMIT=32 |
| | | +CONFIG_CROSS_COMPILE="" |
| | | +# CONFIG_COMPILE_TEST is not set |
| | | +CONFIG_LOCALVERSION="" |
| | | +CONFIG_LOCALVERSION_AUTO=y |
| | | +# CONFIG_LOCALVERSION_AUTO is not set |
| | | +CONFIG_BUILD_SALT="" |
| | | +CONFIG_HAVE_KERNEL_GZIP=y |
| | | +CONFIG_HAVE_KERNEL_LZMA=y |
| | | +CONFIG_HAVE_KERNEL_XZ=y |
| | |
| | | +CONFIG_SYSVIPC_SYSCTL=y |
| | | +# CONFIG_POSIX_MQUEUE is not set |
| | | +CONFIG_CROSS_MEMORY_ATTACH=y |
| | | +CONFIG_FHANDLE=y |
| | | +CONFIG_USELIB=y |
| | | +# CONFIG_AUDIT is not set |
| | | +CONFIG_HAVE_ARCH_AUDITSYSCALL=y |
| | |
| | | +CONFIG_GENERIC_IRQ_CHIP=y |
| | | +CONFIG_IRQ_DOMAIN=y |
| | | +CONFIG_HANDLE_DOMAIN_IRQ=y |
| | | +CONFIG_IRQ_DOMAIN_DEBUG=y |
| | | +CONFIG_IRQ_FORCED_THREADING=y |
| | | +CONFIG_SPARSE_IRQ=y |
| | | +# CONFIG_GENERIC_IRQ_DEBUGFS is not set |
| | | +CONFIG_GENERIC_IRQ_MULTI_HANDLER=y |
| | | +CONFIG_ARCH_CLOCKSOURCE_DATA=y |
| | | +CONFIG_GENERIC_CLOCKEVENTS=y |
| | | + |
| | |
| | | +# CONFIG_NO_HZ_IDLE is not set |
| | | +# CONFIG_NO_HZ is not set |
| | | +# CONFIG_HIGH_RES_TIMERS is not set |
| | | +CONFIG_PREEMPT_NONE=y |
| | | +# CONFIG_PREEMPT_VOLUNTARY is not set |
| | | +# CONFIG_PREEMPT is not set |
| | | + |
| | | +# |
| | | +# CPU/Task time and stats accounting |
| | |
| | | +CONFIG_TINY_RCU=y |
| | | +# CONFIG_RCU_EXPERT is not set |
| | | +CONFIG_SRCU=y |
| | | +# CONFIG_TASKS_RCU is not set |
| | | +# CONFIG_RCU_STALL_COMMON is not set |
| | | +# CONFIG_TREE_RCU_TRACE is not set |
| | | +# CONFIG_RCU_EXPEDITE_BOOT is not set |
| | | +# CONFIG_BUILD_BIN2C is not set |
| | | +CONFIG_TINY_SRCU=y |
| | | +# CONFIG_IKCONFIG is not set |
| | | +CONFIG_LOG_BUF_SHIFT=16 |
| | | +CONFIG_NMI_LOG_BUF_SHIFT=13 |
| | | +CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13 |
| | | +CONFIG_GENERIC_SCHED_CLOCK=y |
| | | +CONFIG_CGROUPS=y |
| | | +# CONFIG_MEMCG is not set |
| | | +# CONFIG_BLK_CGROUP is not set |
| | | +# CONFIG_CGROUP_SCHED is not set |
| | | +# CONFIG_CGROUP_PIDS is not set |
| | | +# CONFIG_CGROUP_RDMA is not set |
| | | +# CONFIG_CGROUP_FREEZER is not set |
| | | +# CONFIG_CPUSETS is not set |
| | | +# CONFIG_CGROUP_DEVICE is not set |
| | | +# CONFIG_CGROUP_CPUACCT is not set |
| | | +# CONFIG_CGROUP_DEBUG is not set |
| | | +# CONFIG_CHECKPOINT_RESTORE is not set |
| | | +CONFIG_SOCK_CGROUP_DATA=y |
| | | +# CONFIG_NAMESPACES is not set |
| | | +# CONFIG_CHECKPOINT_RESTORE is not set |
| | | +# CONFIG_SCHED_AUTOGROUP is not set |
| | | +# CONFIG_SYSFS_DEPRECATED is not set |
| | | +# CONFIG_RELAY is not set |
| | |
| | | +# CONFIG_SGETMASK_SYSCALL is not set |
| | | +CONFIG_SYSFS_SYSCALL=y |
| | | +# CONFIG_SYSCTL_SYSCALL is not set |
| | | +CONFIG_KALLSYMS=y |
| | | +# CONFIG_KALLSYMS_ALL is not set |
| | | +# CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set |
| | | +CONFIG_KALLSYMS_BASE_RELATIVE=y |
| | | +CONFIG_FHANDLE=y |
| | | +CONFIG_POSIX_TIMERS=y |
| | | +CONFIG_PRINTK=y |
| | | +CONFIG_PRINTK_NMI=y |
| | | +CONFIG_BUG=y |
| | | +CONFIG_ELF_CORE=y |
| | | +CONFIG_BASE_FULL=y |
| | | +CONFIG_FUTEX=y |
| | | +CONFIG_FUTEX_PI=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_USERFAULTFD is not set |
| | | +CONFIG_MEMBARRIER=y |
| | | +CONFIG_KALLSYMS=y |
| | | +# CONFIG_KALLSYMS_ALL is not set |
| | | +CONFIG_KALLSYMS_BASE_RELATIVE=y |
| | | +# CONFIG_BPF_SYSCALL is not set |
| | | +# CONFIG_USERFAULTFD is not set |
| | | +CONFIG_ARCH_HAS_MEMBARRIER_SYNC_CORE=y |
| | | +CONFIG_RSEQ=y |
| | | +# CONFIG_DEBUG_RSEQ is not set |
| | | +CONFIG_EMBEDDED=y |
| | | +CONFIG_HAVE_PERF_EVENTS=y |
| | | +CONFIG_PERF_USE_VMALLOC=y |
| | | +# CONFIG_PC104 is not set |
| | | + |
| | | +# |
| | | +# Kernel Performance Events And Counters |
| | |
| | | +CONFIG_SLAB=y |
| | | +# CONFIG_SLUB is not set |
| | | +# CONFIG_SLOB is not set |
| | | +CONFIG_SLAB_MERGE_DEFAULT=y |
| | | +# CONFIG_SLAB_FREELIST_RANDOM is not set |
| | | +# CONFIG_SYSTEM_DATA_VERIFICATION is not set |
| | | +CONFIG_SYSTEM_DATA_VERIFICATION=y |
| | | +# CONFIG_PROFILING is not set |
| | | +CONFIG_HAVE_OPROFILE=y |
| | | +# CONFIG_KPROBES is not set |
| | | +CONFIG_JUMP_LABEL=y |
| | | +# CONFIG_STATIC_KEYS_SELFTEST 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_OPTPROBES=y |
| | | +CONFIG_HAVE_NMI=y |
| | | +CONFIG_HAVE_ARCH_TRACEHOOK=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_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_HAVE_GCC_PLUGINS=y |
| | | +# CONFIG_GCC_PLUGINS is not set |
| | | +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_ARCH_HAS_ELF_RANDOMIZE=y |
| | | +CONFIG_HAVE_ARCH_MMAP_RND_BITS=y |
| | | +CONFIG_HAVE_EXIT_THREAD=y |
| | | +CONFIG_ARCH_MMAP_RND_BITS_MIN=8 |
| | | +CONFIG_ARCH_MMAP_RND_BITS_MAX=16 |
| | | +CONFIG_ARCH_MMAP_RND_BITS=8 |
| | | +# CONFIG_HAVE_ARCH_HASH is not set |
| | | +# CONFIG_ISA_BUS_API is not set |
| | | +CONFIG_CLONE_BACKWARDS=y |
| | | +CONFIG_OLD_SIGSUSPEND3=y |
| | | +CONFIG_OLD_SIGACTION=y |
| | | +# CONFIG_CPU_NO_EFFICIENT_FFS is not set |
| | | +# CONFIG_HAVE_ARCH_VMAP_STACK is not set |
| | | + |
| | | +# |
| | | +# GCOV-based kernel profiling |
| | | +# |
| | | +# CONFIG_GCOV_KERNEL is not set |
| | | +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y |
| | | +CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
| | | +CONFIG_SLABINFO=y |
| | | +CONFIG_RT_MUTEXES=y |
| | | +CONFIG_BASE_SMALL=0 |
| | | +CONFIG_MODULES=y |
| | | +CONFIG_MODULE_FORCE_LOAD=y |
| | | +CONFIG_MODULE_UNLOAD=y |
| | | +CONFIG_MODULE_FORCE_UNLOAD=y |
| | | +# 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_TRIM_UNUSED_KSYMS is not set |
| | | +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 is not set |
| | | +# CONFIG_IOSCHED_CFQ is not set |
| | | +CONFIG_DEFAULT_NOOP=y |
| | | +CONFIG_DEFAULT_IOSCHED="noop" |
| | | +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y |
| | | +CONFIG_INLINE_READ_UNLOCK=y |
| | | +CONFIG_INLINE_READ_UNLOCK_IRQ=y |
| | | +CONFIG_INLINE_WRITE_UNLOCK=y |
| | | +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y |
| | | +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y |
| | | +CONFIG_FREEZER=y |
| | | +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_FIX_EARLYCON_MEM=y |
| | | +CONFIG_GENERIC_HWEIGHT=y |
| | | +CONFIG_GENERIC_CALIBRATE_DELAY=y |
| | | +CONFIG_ARCH_SUPPORTS_UPROBES=y |
| | | +CONFIG_ARM_PATCH_PHYS_VIRT=y |
| | | +CONFIG_GENERIC_BUG=y |
| | | +CONFIG_PGTABLE_LEVELS=2 |
| | | + |
| | | +# |
| | | +# System Type |
| | | +# |
| | | +CONFIG_MMU=y |
| | | +CONFIG_ARCH_MMAP_RND_BITS_MIN=8 |
| | | +CONFIG_ARCH_MMAP_RND_BITS_MAX=16 |
| | | +CONFIG_ARCH_MULTIPLATFORM=y |
| | | +# 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_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_ACTIONS is not set |
| | | +# CONFIG_ARCH_ALPINE is not set |
| | | +# CONFIG_ARCH_ARTPEC is not set |
| | | +CONFIG_ARCH_AT91=y |
| | | +CONFIG_SOC_SAMA5D2=y |
| | | +CONFIG_SOC_SAMA5D3=y |
| | | +# CONFIG_SOC_SAMA5D2 is not set |
| | | +# CONFIG_SOC_SAMA5D3 is not set |
| | | +CONFIG_SOC_SAMA5D4=y |
| | | +# CONFIG_AT91_VDEC_G1 is not set |
| | | +CONFIG_AT91_VDEC_G1=y |
| | | +CONFIG_HAVE_AT91_UTMI=y |
| | | +CONFIG_HAVE_AT91_USB_CLK=y |
| | | +CONFIG_COMMON_CLK_AT91=y |
| | | +CONFIG_HAVE_AT91_SMD=y |
| | | +CONFIG_HAVE_AT91_H32MX=y |
| | | +CONFIG_HAVE_AT91_GENERATED_CLK=y |
| | | +CONFIG_HAVE_AT91_AUDIO_PLL=y |
| | | +CONFIG_SOC_SAM_V7=y |
| | | +CONFIG_SOC_SAMA5=y |
| | | +CONFIG_ATMEL_PM=y |
| | | +# CONFIG_ARCH_BCM is not set |
| | | +# CONFIG_ARCH_BERLIN is not set |
| | | +# CONFIG_ARCH_DIGICOLOR is not set |
| | | +# CONFIG_ARCH_EXYNOS 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 |
| | | +# CONFIG_ARCH_MXC is not set |
| | | +# CONFIG_ARCH_KEYSTONE is not set |
| | | +# CONFIG_ARCH_MEDIATEK is not set |
| | | +# CONFIG_ARCH_MESON is not set |
| | | +# CONFIG_ARCH_MMP is not set |
| | | +# CONFIG_ARCH_MVEBU is not set |
| | | +# CONFIG_ARCH_NPCM is not set |
| | | + |
| | | +# |
| | | +# TI OMAP/AM/DM/DRA Family |
| | |
| | | +# CONFIG_SOC_AM33XX is not set |
| | | +# CONFIG_SOC_AM43XX is not set |
| | | +# CONFIG_SOC_DRA7XX is not set |
| | | +# CONFIG_ARCH_MMP is not set |
| | | +# CONFIG_ARCH_SIRF is not set |
| | | +# CONFIG_ARCH_QCOM is not set |
| | | +# CONFIG_ARCH_REALVIEW is not set |
| | | +# CONFIG_ARCH_ROCKCHIP is not set |
| | | +# CONFIG_ARCH_S5PV210 is not set |
| | | +# CONFIG_ARCH_RENESAS 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_RENESAS is not set |
| | | +# CONFIG_ARCH_STM32 is not set |
| | | +# CONFIG_ARCH_SUNXI is not set |
| | | +# CONFIG_ARCH_SIRF is not set |
| | | +# CONFIG_ARCH_TANGO is not set |
| | | +# CONFIG_ARCH_TEGRA is not set |
| | | +# CONFIG_ARCH_UNIPHIER is not set |
| | |
| | | +# Processor Type |
| | | +# |
| | | +CONFIG_CPU_V7=y |
| | | +CONFIG_CPU_THUMB_CAPABLE=y |
| | | +CONFIG_CPU_32v6K=y |
| | | +CONFIG_CPU_32v7=y |
| | | +CONFIG_CPU_ABRT_EV7=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_ARM_L1_CACHE_SHIFT=6 |
| | | +CONFIG_ARM_DMA_MEM_BUFFERABLE=y |
| | | +CONFIG_ARM_HEAVY_MB=y |
| | | +CONFIG_DEBUG_RODATA=y |
| | | +CONFIG_DEBUG_ALIGN_RODATA=y |
| | | +CONFIG_MULTI_IRQ_HANDLER=y |
| | | +# CONFIG_ARM_ERRATA_430973 is not set |
| | | +# CONFIG_ARM_ERRATA_720789 is not set |
| | | +# CONFIG_ARM_ERRATA_754322 is not set |
| | |
| | | +# Bus support |
| | | +# |
| | | +# CONFIG_PCI is not set |
| | | +# CONFIG_PCI_DOMAINS_GENERIC is not set |
| | | +# CONFIG_PCI_SYSCALL is not set |
| | | + |
| | | +# |
| | | +# PCI Endpoint |
| | | +# |
| | | +# CONFIG_PCI_ENDPOINT is not set |
| | | +# CONFIG_PCCARD is not set |
| | | + |
| | | +# |
| | |
| | | +CONFIG_PAGE_OFFSET=0xC0000000 |
| | | +# CONFIG_ARM_PSCI is not set |
| | | +CONFIG_ARCH_NR_GPIO=0 |
| | | +CONFIG_PREEMPT_NONE=y |
| | | +# CONFIG_PREEMPT_VOLUNTARY is not set |
| | | +# CONFIG_PREEMPT is not set |
| | | +CONFIG_HZ_FIXED=0 |
| | | +CONFIG_HZ_100=y |
| | | +# CONFIG_HZ_200 is not set |
| | |
| | | +# CONFIG_HZ_500 is not set |
| | | +# CONFIG_HZ_1000 is not set |
| | | +CONFIG_HZ=100 |
| | | +# CONFIG_SCHED_HRTICK is not set |
| | | +# CONFIG_THUMB2_KERNEL is not set |
| | | +CONFIG_ARM_PATCH_IDIV=y |
| | | +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 is not set |
| | | +CONFIG_CPU_SW_DOMAIN_PAN=y |
| | | +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y |
| | | +# CONFIG_ARM_MODULE_PLTS is not set |
| | | +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_SPLIT_PTLOCK_CPUS=4 |
| | | +CONFIG_COMPACTION=y |
| | | +CONFIG_MIGRATION=y |
| | | +# CONFIG_PHYS_ADDR_T_64BIT is not set |
| | | +# CONFIG_KSM is not set |
| | | +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
| | | +CONFIG_NEED_PER_CPU_KM=y |
| | | +# CONFIG_CLEANCACHE is not set |
| | | +CONFIG_CMA=y |
| | | +# CONFIG_CMA_DEBUG is not set |
| | | +CONFIG_CMA_DEBUGFS=y |
| | | +CONFIG_CMA_AREAS=7 |
| | | +# CONFIG_ZPOOL is not set |
| | | +# CONFIG_ZBUD is not set |
| | | +# CONFIG_ZSMALLOC is not set |
| | | +CONFIG_GENERIC_EARLY_IOREMAP=y |
| | | +# CONFIG_IDLE_PAGE_TRACKING is not set |
| | | +CONFIG_FRAME_VECTOR=y |
| | | +CONFIG_FORCE_MAX_ZONEORDER=15 |
| | | +CONFIG_ALIGNMENT_TRAP=y |
| | | +CONFIG_UACCESS_WITH_MEMCPY=y |
| | | +# CONFIG_SECCOMP is not set |
| | | +CONFIG_SWIOTLB=y |
| | | +CONFIG_IOMMU_HELPER=y |
| | | +# CONFIG_PARAVIRT is not set |
| | | +# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set |
| | | +# CONFIG_XEN is not set |
| | |
| | | +# |
| | | +# CONFIG_ARM_CPUIDLE is not set |
| | | +CONFIG_ARM_AT91_CPUIDLE=y |
| | | +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set |
| | | + |
| | | +# |
| | | +# Floating point emulation |
| | |
| | | +CONFIG_VFPv3=y |
| | | +CONFIG_NEON=y |
| | | +CONFIG_KERNEL_MODE_NEON=y |
| | | + |
| | | +# |
| | | +# Userspace binary formats |
| | | +# |
| | | +CONFIG_BINFMT_ELF=y |
| | | +CONFIG_ELFCORE=y |
| | | +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
| | | +CONFIG_BINFMT_SCRIPT=y |
| | | +# CONFIG_BINFMT_FLAT is not set |
| | | +# CONFIG_HAVE_AOUT is not set |
| | | +# CONFIG_BINFMT_MISC is not set |
| | | +CONFIG_COREDUMP=y |
| | | + |
| | | +# |
| | | +# Power management options |
| | |
| | | +CONFIG_ARCH_SUSPEND_POSSIBLE=y |
| | | +CONFIG_ARM_CPU_SUSPEND=y |
| | | +CONFIG_ARCH_HIBERNATION_POSSIBLE=y |
| | | + |
| | | +# |
| | | +# Firmware Drivers |
| | | +# |
| | | +# CONFIG_FIRMWARE_MEMMAP is not set |
| | | +# CONFIG_FW_CFG_SYSFS is not set |
| | | +CONFIG_HAVE_ARM_SMCCC=y |
| | | +# CONFIG_GOOGLE_FIRMWARE is not set |
| | | + |
| | | +# |
| | | +# Tegra firmware driver |
| | | +# |
| | | +# CONFIG_ARM_CRYPTO is not set |
| | | +# CONFIG_VIRTUALIZATION is not set |
| | | + |
| | | +# |
| | | +# General architecture-dependent options |
| | | +# |
| | | +CONFIG_HAVE_OPROFILE=y |
| | | +# CONFIG_KPROBES is not set |
| | | +CONFIG_JUMP_LABEL=y |
| | | +# CONFIG_STATIC_KEYS_SELFTEST 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_OPTPROBES=y |
| | | +CONFIG_HAVE_NMI=y |
| | | +CONFIG_HAVE_ARCH_TRACEHOOK=y |
| | | +CONFIG_HAVE_DMA_CONTIGUOUS=y |
| | | +CONFIG_GENERIC_SMP_IDLE_THREAD=y |
| | | +CONFIG_GENERIC_IDLE_POLL_SETUP=y |
| | | +CONFIG_ARCH_HAS_FORTIFY_SOURCE=y |
| | | +CONFIG_ARCH_HAS_SET_MEMORY=y |
| | | +CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y |
| | | +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y |
| | | +CONFIG_HAVE_RSEQ=y |
| | | +CONFIG_HAVE_CLK=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_HAVE_STACKPROTECTOR=y |
| | | +CONFIG_CC_HAS_STACKPROTECTOR_NONE=y |
| | | +CONFIG_STACKPROTECTOR=y |
| | | +CONFIG_STACKPROTECTOR_STRONG=y |
| | | +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_ARCH_HAS_ELF_RANDOMIZE=y |
| | | +CONFIG_HAVE_ARCH_MMAP_RND_BITS=y |
| | | +CONFIG_HAVE_EXIT_THREAD=y |
| | | +CONFIG_ARCH_MMAP_RND_BITS=8 |
| | | +CONFIG_CLONE_BACKWARDS=y |
| | | +CONFIG_OLD_SIGSUSPEND3=y |
| | | +CONFIG_OLD_SIGACTION=y |
| | | +CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y |
| | | +CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y |
| | | +CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y |
| | | +CONFIG_STRICT_KERNEL_RWX=y |
| | | +CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y |
| | | +CONFIG_STRICT_MODULE_RWX=y |
| | | +CONFIG_ARCH_HAS_PHYS_TO_DMA=y |
| | | +CONFIG_REFCOUNT_FULL=y |
| | | + |
| | | +# |
| | | +# GCOV-based kernel profiling |
| | | +# |
| | | +# CONFIG_GCOV_KERNEL is not set |
| | | +CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y |
| | | +CONFIG_PLUGIN_HOSTCC="" |
| | | +CONFIG_HAVE_GCC_PLUGINS=y |
| | | +CONFIG_RT_MUTEXES=y |
| | | +CONFIG_BASE_SMALL=0 |
| | | +CONFIG_MODULES=y |
| | | +CONFIG_MODULE_FORCE_LOAD=y |
| | | +CONFIG_MODULE_UNLOAD=y |
| | | +CONFIG_MODULE_FORCE_UNLOAD=y |
| | | +# 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_TRIM_UNUSED_KSYMS is not set |
| | | +CONFIG_BLOCK=y |
| | | +CONFIG_LBDAF=y |
| | | +CONFIG_BLK_SCSI_REQUEST=y |
| | | +# CONFIG_BLK_DEV_BSG is not set |
| | | +# CONFIG_BLK_DEV_BSGLIB is not set |
| | | +# CONFIG_BLK_DEV_INTEGRITY is not set |
| | | +# CONFIG_BLK_DEV_ZONED is not set |
| | | +# CONFIG_BLK_CMDLINE_PARSER is not set |
| | | +# CONFIG_BLK_WBT is not set |
| | | +CONFIG_BLK_DEBUG_FS=y |
| | | +# CONFIG_BLK_SED_OPAL 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 is not set |
| | | +# CONFIG_IOSCHED_CFQ is not set |
| | | +CONFIG_DEFAULT_NOOP=y |
| | | +CONFIG_DEFAULT_IOSCHED="noop" |
| | | +CONFIG_MQ_IOSCHED_DEADLINE=y |
| | | +CONFIG_MQ_IOSCHED_KYBER=y |
| | | +# CONFIG_IOSCHED_BFQ is not set |
| | | +CONFIG_ASN1=y |
| | | +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y |
| | | +CONFIG_INLINE_READ_UNLOCK=y |
| | | +CONFIG_INLINE_READ_UNLOCK_IRQ=y |
| | | +CONFIG_INLINE_WRITE_UNLOCK=y |
| | | +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y |
| | | +CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y |
| | | +CONFIG_FREEZER=y |
| | | + |
| | | +# |
| | | +# Executable file formats |
| | | +# |
| | | +CONFIG_BINFMT_ELF=y |
| | | +# CONFIG_BINFMT_ELF_FDPIC is not set |
| | | +CONFIG_ELFCORE=y |
| | | +# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set |
| | | +CONFIG_BINFMT_SCRIPT=y |
| | | +# CONFIG_BINFMT_FLAT is not set |
| | | +# CONFIG_BINFMT_MISC is not set |
| | | +CONFIG_COREDUMP=y |
| | | + |
| | | +# |
| | | +# Memory Management options |
| | | +# |
| | | +CONFIG_FLATMEM=y |
| | | +CONFIG_FLAT_NODE_MEM_MAP=y |
| | | +CONFIG_HAVE_MEMBLOCK=y |
| | | +CONFIG_NO_BOOTMEM=y |
| | | +CONFIG_MEMORY_ISOLATION=y |
| | | +CONFIG_SPLIT_PTLOCK_CPUS=4 |
| | | +CONFIG_COMPACTION=y |
| | | +CONFIG_MIGRATION=y |
| | | +# CONFIG_KSM is not set |
| | | +CONFIG_DEFAULT_MMAP_MIN_ADDR=4096 |
| | | +CONFIG_NEED_PER_CPU_KM=y |
| | | +# CONFIG_CLEANCACHE is not set |
| | | +CONFIG_CMA=y |
| | | +# CONFIG_CMA_DEBUG is not set |
| | | +CONFIG_CMA_DEBUGFS=y |
| | | +CONFIG_CMA_AREAS=7 |
| | | +# CONFIG_ZPOOL is not set |
| | | +# CONFIG_ZBUD is not set |
| | | +# CONFIG_ZSMALLOC is not set |
| | | +CONFIG_GENERIC_EARLY_IOREMAP=y |
| | | +# CONFIG_IDLE_PAGE_TRACKING is not set |
| | | +CONFIG_FRAME_VECTOR=y |
| | | +# CONFIG_PERCPU_STATS is not set |
| | | +# CONFIG_GUP_BENCHMARK is not set |
| | | +CONFIG_NET=y |
| | | +CONFIG_NET_INGRESS=y |
| | | + |
| | |
| | | +# CONFIG_PACKET_DIAG is not set |
| | | +CONFIG_UNIX=y |
| | | +# CONFIG_UNIX_DIAG is not set |
| | | +# CONFIG_TLS is not set |
| | | +# CONFIG_XFRM_USER is not set |
| | | +# CONFIG_NET_KEY is not set |
| | | +CONFIG_INET=y |
| | |
| | | +# CONFIG_IP_PNP is not set |
| | | +# CONFIG_NET_IPIP is not set |
| | | +# CONFIG_NET_IPGRE_DEMUX is not set |
| | | +# CONFIG_NET_IP_TUNNEL is not set |
| | | +CONFIG_IP_MROUTE_COMMON=y |
| | | +CONFIG_IP_MROUTE=y |
| | | +# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set |
| | | +# CONFIG_IP_PIMSM_V1 is not set |
| | | +# CONFIG_IP_PIMSM_V2 is not set |
| | | +CONFIG_SYN_COOKIES=y |
| | | +# CONFIG_NET_UDP_TUNNEL is not set |
| | | +# CONFIG_NET_FOU is not set |
| | | +# CONFIG_INET_AH is not set |
| | | +# CONFIG_INET_ESP is not set |
| | | +# CONFIG_INET_IPCOMP is not set |
| | | +# CONFIG_INET_XFRM_TUNNEL is not set |
| | | +# CONFIG_INET_TUNNEL is not set |
| | | +# CONFIG_INET_XFRM_MODE_TRANSPORT is not set |
| | | +# CONFIG_INET_XFRM_MODE_TUNNEL is not set |
| | | +# CONFIG_INET_XFRM_MODE_BEET is not set |
| | |
| | | +# CONFIG_TCP_MD5SIG is not set |
| | | +# CONFIG_IPV6 is not set |
| | | +# CONFIG_NETWORK_SECMARK is not set |
| | | +# CONFIG_NET_PTP_CLASSIFY is not set |
| | | +# CONFIG_NETWORK_PHY_TIMESTAMPING is not set |
| | | +CONFIG_NETFILTER=y |
| | | +CONFIG_NETFILTER_DEBUG=y |
| | | +CONFIG_NETFILTER_ADVANCED=y |
| | | +CONFIG_BRIDGE_NETFILTER=y |
| | | + |
| | |
| | | +# |
| | | +CONFIG_NETFILTER_INGRESS=y |
| | | +CONFIG_NETFILTER_NETLINK=y |
| | | +CONFIG_NETFILTER_FAMILY_BRIDGE=y |
| | | +CONFIG_NETFILTER_FAMILY_ARP=y |
| | | +CONFIG_NETFILTER_NETLINK_ACCT=y |
| | | +CONFIG_NETFILTER_NETLINK_QUEUE=y |
| | | +CONFIG_NETFILTER_NETLINK_LOG=y |
| | | +CONFIG_NETFILTER_NETLINK_OSF=y |
| | | +CONFIG_NF_CONNTRACK=y |
| | | +CONFIG_NF_LOG_COMMON=y |
| | | +# CONFIG_NF_LOG_NETDEV is not set |
| | | +CONFIG_NETFILTER_CONNCOUNT=y |
| | | +CONFIG_NF_CONNTRACK_MARK=y |
| | | +# CONFIG_NF_CONNTRACK_ZONES is not set |
| | | +CONFIG_NF_CONNTRACK_PROCFS=y |
| | |
| | | +CONFIG_NF_CONNTRACK_SIP=y |
| | | +CONFIG_NF_CONNTRACK_TFTP=y |
| | | +CONFIG_NF_CT_NETLINK=y |
| | | +CONFIG_NF_CT_NETLINK_TIMEOUT=y |
| | | +# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set |
| | | +CONFIG_NF_NAT=y |
| | | +CONFIG_NF_NAT_NEEDED=y |
| | |
| | | +CONFIG_NF_NAT_REDIRECT=y |
| | | +CONFIG_NETFILTER_SYNPROXY=y |
| | | +CONFIG_NF_TABLES=y |
| | | +# CONFIG_NF_TABLES_SET is not set |
| | | +# CONFIG_NF_TABLES_NETDEV is not set |
| | | +CONFIG_NFT_EXTHDR=y |
| | | +CONFIG_NFT_META=y |
| | | +# CONFIG_NFT_NUMGEN is not set |
| | | +CONFIG_NFT_CT=y |
| | | +# CONFIG_NFT_SET_RBTREE is not set |
| | | +# CONFIG_NFT_SET_HASH is not set |
| | | +CONFIG_NFT_COUNTER=y |
| | | +# CONFIG_NFT_CONNLIMIT is not set |
| | | +CONFIG_NFT_LOG=y |
| | | +CONFIG_NFT_LIMIT=y |
| | | +CONFIG_NFT_MASQ=y |
| | | +CONFIG_NFT_REDIR=y |
| | | +CONFIG_NFT_NAT=y |
| | | +# CONFIG_NFT_TUNNEL is not set |
| | | +# CONFIG_NFT_OBJREF is not set |
| | | +CONFIG_NFT_QUEUE=y |
| | | +# CONFIG_NFT_QUOTA is not set |
| | | +CONFIG_NFT_REJECT=y |
| | | +CONFIG_NFT_COMPAT=y |
| | | +CONFIG_NFT_HASH=y |
| | | +# CONFIG_NFT_SOCKET is not set |
| | | +# CONFIG_NFT_OSF is not set |
| | | +# CONFIG_NFT_TPROXY is not set |
| | | +# CONFIG_NF_FLOW_TABLE is not set |
| | | +CONFIG_NETFILTER_XTABLES=y |
| | | + |
| | | +# |
| | |
| | | +CONFIG_NETFILTER_XT_MATCH_REALM=y |
| | | +CONFIG_NETFILTER_XT_MATCH_RECENT=y |
| | | +CONFIG_NETFILTER_XT_MATCH_SCTP=y |
| | | +CONFIG_NETFILTER_XT_MATCH_SOCKET=y |
| | | +# CONFIG_NETFILTER_XT_MATCH_SOCKET is not set |
| | | +CONFIG_NETFILTER_XT_MATCH_STATE=y |
| | | +CONFIG_NETFILTER_XT_MATCH_STATISTIC=y |
| | | +CONFIG_NETFILTER_XT_MATCH_STRING=y |
| | |
| | | +CONFIG_IP_SET_HASH_IPPORT=y |
| | | +CONFIG_IP_SET_HASH_IPPORTIP=y |
| | | +CONFIG_IP_SET_HASH_IPPORTNET=y |
| | | +# CONFIG_IP_SET_HASH_IPMAC is not set |
| | | +CONFIG_IP_SET_HASH_MAC=y |
| | | +CONFIG_IP_SET_HASH_NETPORTNET=y |
| | | +CONFIG_IP_SET_HASH_NET=y |
| | |
| | | +CONFIG_IP_VS_LBLCR=y |
| | | +CONFIG_IP_VS_DH=y |
| | | +CONFIG_IP_VS_SH=y |
| | | +# CONFIG_IP_VS_MH is not set |
| | | +CONFIG_IP_VS_SED=y |
| | | +CONFIG_IP_VS_NQ=y |
| | | + |
| | |
| | | +# IPVS SH scheduler |
| | | +# |
| | | +CONFIG_IP_VS_SH_TAB_BITS=8 |
| | | + |
| | | +# |
| | | +# IPVS MH scheduler |
| | | +# |
| | | +CONFIG_IP_VS_MH_TAB_INDEX=12 |
| | | + |
| | | +# |
| | | +# IPVS application helper |
| | |
| | | +# IP: Netfilter Configuration |
| | | +# |
| | | +CONFIG_NF_DEFRAG_IPV4=y |
| | | +CONFIG_NF_CONNTRACK_IPV4=y |
| | | +# CONFIG_NF_SOCKET_IPV4 is not set |
| | | +CONFIG_NF_TPROXY_IPV4=y |
| | | +CONFIG_NF_TABLES_IPV4=y |
| | | +CONFIG_NFT_CHAIN_ROUTE_IPV4=y |
| | | +CONFIG_NFT_REJECT_IPV4=y |
| | | +# CONFIG_NFT_DUP_IPV4 is not set |
| | | +# CONFIG_NFT_FIB_IPV4 is not set |
| | | +CONFIG_NF_TABLES_ARP=y |
| | | +CONFIG_NF_DUP_IPV4=y |
| | | +CONFIG_NF_LOG_ARP=y |
| | | +CONFIG_NF_LOG_IPV4=y |
| | | +CONFIG_NF_REJECT_IPV4=y |
| | | +CONFIG_NF_NAT_IPV4=y |
| | | +CONFIG_NFT_CHAIN_NAT_IPV4=y |
| | | +CONFIG_NF_NAT_MASQUERADE_IPV4=y |
| | | +CONFIG_NFT_CHAIN_NAT_IPV4=y |
| | | +CONFIG_NFT_MASQ_IPV4=y |
| | | +CONFIG_NFT_REDIR_IPV4=y |
| | | +CONFIG_NF_NAT_SNMP_BASIC=y |
| | |
| | | +CONFIG_IP_NF_ARPFILTER=y |
| | | +CONFIG_IP_NF_ARP_MANGLE=y |
| | | +CONFIG_NF_TABLES_BRIDGE=y |
| | | +CONFIG_NFT_BRIDGE_META=y |
| | | +CONFIG_NF_LOG_BRIDGE=y |
| | | +CONFIG_BRIDGE_NF_EBTABLES=y |
| | | +CONFIG_BRIDGE_EBT_BROUTE=y |
| | |
| | | +CONFIG_BRIDGE_EBT_SNAT=y |
| | | +CONFIG_BRIDGE_EBT_LOG=y |
| | | +CONFIG_BRIDGE_EBT_NFLOG=y |
| | | +# CONFIG_BPFILTER is not set |
| | | +# CONFIG_IP_DCCP is not set |
| | | +# CONFIG_IP_SCTP is not set |
| | | +# CONFIG_RDS 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_VSOCKETS is not set |
| | | +# CONFIG_NETLINK_DIAG is not set |
| | | +# CONFIG_MPLS is not set |
| | | +# CONFIG_NET_NSH is not set |
| | | +# CONFIG_HSR is not set |
| | | +# CONFIG_NET_SWITCHDEV is not set |
| | | +# CONFIG_NET_L3_MASTER_DEV is not set |
| | | +# CONFIG_NET_NCSI is not set |
| | | +CONFIG_SOCK_CGROUP_DATA=y |
| | | +# CONFIG_CGROUP_NET_PRIO is not set |
| | | +CONFIG_CGROUP_NET_CLASSID=y |
| | | +CONFIG_NET_RX_BUSY_POLL=y |
| | |
| | | +# CONFIG_NET_PKTGEN is not set |
| | | +# 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_AF_KCM is not set |
| | | +# CONFIG_STREAM_PARSER is not set |
| | | +CONFIG_FIB_RULES=y |
| | | +CONFIG_WIRELESS=y |
| | | +CONFIG_WEXT_CORE=y |
| | |
| | | +# CONFIG_NL80211_TESTMODE is not set |
| | | +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set |
| | | +# CONFIG_CFG80211_CERTIFICATION_ONUS is not set |
| | | +CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y |
| | | +CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y |
| | | +CONFIG_CFG80211_DEFAULT_PS=y |
| | | +# CONFIG_CFG80211_DEBUGFS is not set |
| | | +# CONFIG_CFG80211_INTERNAL_REGDB is not set |
| | | +CONFIG_CFG80211_CRDA_SUPPORT=y |
| | | +CONFIG_CFG80211_WEXT=y |
| | | +# CONFIG_LIB80211 is not set |
| | | +CONFIG_MAC80211=y |
| | | +CONFIG_MAC80211_HAS_RC=y |
| | | +CONFIG_MAC80211_RC_MINSTREL=y |
| | |
| | | +CONFIG_RFKILL=y |
| | | +CONFIG_RFKILL_LEDS=y |
| | | +CONFIG_RFKILL_INPUT=y |
| | | +# CONFIG_RFKILL_REGULATOR is not set |
| | | +# CONFIG_RFKILL_GPIO 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_NFC=y |
| | | +# CONFIG_NFC_DIGITAL is not set |
| | | +# CONFIG_NFC_NCI is not set |
| | | +# CONFIG_NFC_HCI is not set |
| | | + |
| | | +# |
| | | +# Near Field Communication (NFC) devices |
| | | +# |
| | | +CONFIG_NXPRDLIB_BAL=y |
| | | +# CONFIG_NFC_PN533_USB is not set |
| | | +# CONFIG_NFC_PN533_I2C is not set |
| | | +# CONFIG_PSAMPLE is not set |
| | | +# CONFIG_NET_IFE is not set |
| | | +# CONFIG_LWTUNNEL is not set |
| | | +# CONFIG_DST_CACHE is not set |
| | | +# CONFIG_NET_DEVLINK is not set |
| | | +CONFIG_MAY_USE_DEVLINK=y |
| | | +CONFIG_HAVE_CBPF_JIT=y |
| | | +# CONFIG_FAILOVER is not set |
| | | +CONFIG_HAVE_EBPF_JIT=y |
| | | + |
| | | +# |
| | | +# Device Drivers |
| | |
| | | +CONFIG_DEVTMPFS_MOUNT=y |
| | | +# CONFIG_STANDALONE is not set |
| | | +# CONFIG_PREVENT_FIRMWARE_BUILD is not set |
| | | + |
| | | +# |
| | | +# Firmware loader |
| | | +# |
| | | +CONFIG_FW_LOADER=y |
| | | +CONFIG_FIRMWARE_IN_KERNEL=y |
| | | +CONFIG_EXTRA_FIRMWARE="" |
| | | +# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set |
| | | +# CONFIG_FW_LOADER_USER_HELPER is not set |
| | | +CONFIG_ALLOW_DEV_COREDUMP=y |
| | | +# CONFIG_DEBUG_DRIVER is not set |
| | | +# CONFIG_DEBUG_DEVRES is not set |
| | | +# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set |
| | | +# CONFIG_SYS_HYPERVISOR is not set |
| | | +# CONFIG_GENERIC_CPU_DEVICES is not set |
| | | +# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set |
| | | +CONFIG_GENERIC_CPU_AUTOPROBE=y |
| | | +CONFIG_SOC_BUS=y |
| | | +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_FENCE_TRACE is not set |
| | | +CONFIG_DMA_CMA=y |
| | | + |
| | | +# |
| | |
| | | +# Bus devices |
| | | +# |
| | | +# CONFIG_BRCMSTB_GISB_ARB is not set |
| | | +# CONFIG_SIMPLE_PM_BUS is not set |
| | | +# CONFIG_VEXPRESS_CONFIG is not set |
| | | +# CONFIG_CONNECTOR is not set |
| | | +# CONFIG_GNSS is not set |
| | | +CONFIG_MTD=y |
| | | +# CONFIG_MTD_TESTS is not set |
| | | +# CONFIG_MTD_REDBOOT_PARTS is not set |
| | |
| | | +# CONFIG_MTD_AFS_PARTS is not set |
| | | +CONFIG_MTD_OF_PARTS=y |
| | | +# CONFIG_MTD_AR7_PARTS is not set |
| | | + |
| | | +# |
| | | +# Partition parsers |
| | | +# |
| | | + |
| | | +# |
| | | +# User Modules And Translation Layers |
| | |
| | | +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_CFI_INTELEXT is not set |
| | | +# CONFIG_MTD_CFI_AMDSTD is not set |
| | | +# CONFIG_MTD_CFI_STAA is not set |
| | |
| | | +# |
| | | +# CONFIG_MTD_DATAFLASH is not set |
| | | +CONFIG_MTD_M25P80=y |
| | | +# CONFIG_MTD_MCHP23K256 is not set |
| | | +# CONFIG_MTD_SST25L is not set |
| | | +# CONFIG_MTD_SLRAM is not set |
| | | +# CONFIG_MTD_PHRAM is not set |
| | |
| | | +# Disk-On-Chip Device Drivers |
| | | +# |
| | | +# CONFIG_MTD_DOCG3 is not set |
| | | +# CONFIG_MTD_ONENAND is not set |
| | | +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_DT is not set |
| | | +# CONFIG_MTD_NAND_GPIO is not set |
| | | +# CONFIG_MTD_NAND_OMAP_BCH_BUILD is not set |
| | | +CONFIG_MTD_NAND_IDS=y |
| | | +# CONFIG_MTD_NAND_DISKONCHIP is not set |
| | | +# CONFIG_MTD_NAND_DOCG4 is not set |
| | | +CONFIG_MTD_NAND_ATMEL=y |
| | | +# CONFIG_MTD_NAND_NANDSIM is not set |
| | | +# CONFIG_MTD_NAND_BRCMNAND is not set |
| | | +# CONFIG_MTD_NAND_PLATFORM is not set |
| | | +# CONFIG_MTD_NAND_HISI504 is not set |
| | | +# CONFIG_MTD_NAND_MTK is not set |
| | | +# CONFIG_MTD_ONENAND is not set |
| | | +# CONFIG_MTD_SPI_NAND is not set |
| | | + |
| | | +# |
| | | +# LPDDR & LPDDR2 PCM memory drivers |
| | |
| | | +CONFIG_MTD_SPI_NOR=y |
| | | +# CONFIG_MTD_MT81xx_NOR is not set |
| | | +# CONFIG_MTD_SPI_NOR_USE_4K_SECTORS is not set |
| | | +CONFIG_SPI_ATMEL_QUADSPI=y |
| | | +# CONFIG_SPI_CADENCE_QUADSPI is not set |
| | | +CONFIG_MTD_UBI=y |
| | | +CONFIG_MTD_UBI_WL_THRESHOLD=4096 |
| | |
| | | +# CONFIG_OF_UNITTEST is not set |
| | | +CONFIG_OF_FLATTREE=y |
| | | +CONFIG_OF_EARLY_FLATTREE=y |
| | | +CONFIG_OF_KOBJ=y |
| | | +CONFIG_OF_ADDRESS=y |
| | | +CONFIG_OF_IRQ=y |
| | | +CONFIG_OF_NET=y |
| | |
| | | +# CONFIG_PARPORT is not set |
| | | +CONFIG_BLK_DEV=y |
| | | +# CONFIG_BLK_DEV_NULL_BLK 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_LOOP_MIN_COUNT=4 |
| | | +# 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_SIZE=8192 |
| | | +# 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 |
| | | + |
| | | +# |
| | | +# NVME Support |
| | | +# |
| | | +# CONFIG_NVME_FC is not set |
| | | +# CONFIG_NVME_TARGET is not set |
| | | + |
| | | +# |
| | | +# Misc devices |
| | | +# |
| | | +# CONFIG_SENSORS_LIS3LV02D is not set |
| | | +# CONFIG_AD525X_DPOT is not set |
| | | +CONFIG_ATMEL_TCLIB=y |
| | | +CONFIG_ATMEL_TCB_CLKSRC=y |
| | |
| | | +# CONFIG_SENSORS_APDS990X is not set |
| | | +# CONFIG_HMC6352 is not set |
| | | +# CONFIG_DS1682 is not set |
| | | +# CONFIG_TI_DAC7512 is not set |
| | | +# CONFIG_USB_SWITCH_FSA9480 is not set |
| | | +# CONFIG_LATTICE_ECP3_CONFIG is not set |
| | | +CONFIG_SRAM=y |
| | | +CONFIG_SRAM_EXEC=y |
| | | +# CONFIG_C2PORT is not set |
| | | + |
| | | +# |
| | |
| | | +# CONFIG_EEPROM_MAX6875 is not set |
| | | +CONFIG_EEPROM_93CX6=y |
| | | +# CONFIG_EEPROM_93XX46 is not set |
| | | +# CONFIG_EEPROM_IDT_89HPESX 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 |
| | | +# CONFIG_ALTERA_STAPL is not set |
| | | + |
| | | +# |
| | | +# Altera FPGA firmware download module |
| | | +# Intel MIC & related support |
| | | +# |
| | | +# CONFIG_ALTERA_STAPL is not set |
| | | + |
| | | +# |
| | | +# Intel MIC Bus Driver |
| | |
| | | +# VOP Driver |
| | | +# |
| | | +# CONFIG_ECHO is not set |
| | | +# CONFIG_CXL_BASE is not set |
| | | +# CONFIG_CXL_AFU_DRIVER_OPS is not set |
| | | +# CONFIG_MISC_RTSX_USB is not set |
| | | + |
| | | +# |
| | | +# SCSI device support |
| | |
| | | +# 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 |
| | | + |
| | |
| | | +# CONFIG_EQUALIZER is not set |
| | | +# CONFIG_NET_TEAM is not set |
| | | +# CONFIG_MACVLAN is not set |
| | | +# CONFIG_IPVLAN is not set |
| | | +# CONFIG_VXLAN is not set |
| | | +# CONFIG_GTP is not set |
| | | +# CONFIG_MACSEC is not set |
| | | +# CONFIG_NETCONSOLE is not set |
| | | +# CONFIG_NETPOLL is not set |
| | | +# CONFIG_NET_POLL_CONTROLLER is not set |
| | | +# CONFIG_TUN is not set |
| | | +# CONFIG_TUN_VNET_CROSS_LE is not set |
| | | +# CONFIG_VETH is not set |
| | |
| | | +# Distributed Switch Architecture drivers |
| | | +# |
| | | +CONFIG_ETHERNET=y |
| | | +# CONFIG_NET_VENDOR_ALACRITECH is not set |
| | | +# CONFIG_ALTERA_TSE is not set |
| | | +# CONFIG_NET_VENDOR_AMAZON is not set |
| | | +# CONFIG_NET_VENDOR_AQUANTIA is not set |
| | | +# CONFIG_NET_VENDOR_ARC is not set |
| | | +# CONFIG_NET_VENDOR_AURORA is not set |
| | | +CONFIG_NET_CADENCE=y |
| | | +CONFIG_MACB=y |
| | | +# CONFIG_NET_VENDOR_BROADCOM is not set |
| | | +CONFIG_NET_VENDOR_CADENCE=y |
| | | +CONFIG_MACB=y |
| | | +CONFIG_MACB_USE_HWSTAMP=y |
| | | +# CONFIG_NET_VENDOR_CAVIUM is not set |
| | | +# CONFIG_NET_VENDOR_CIRRUS is not set |
| | | +# CONFIG_NET_VENDOR_CORTINA is not set |
| | | +# CONFIG_DM9000 is not set |
| | | +# CONFIG_DNET is not set |
| | | +# CONFIG_NET_VENDOR_EZCHIP is not set |
| | | +# CONFIG_NET_VENDOR_FARADAY is not set |
| | | +# CONFIG_NET_VENDOR_HISILICON is not set |
| | | +# CONFIG_NET_VENDOR_HUAWEI is not set |
| | | +# CONFIG_NET_VENDOR_INTEL is not set |
| | | +# CONFIG_NET_VENDOR_MARVELL is not set |
| | | +# CONFIG_NET_VENDOR_MELLANOX is not set |
| | | +# CONFIG_NET_VENDOR_MICREL is not set |
| | | +# CONFIG_NET_VENDOR_MICROCHIP is not set |
| | | +# CONFIG_NET_VENDOR_MICROSEMI is not set |
| | | +# CONFIG_NET_VENDOR_NATSEMI is not set |
| | | +# CONFIG_NET_VENDOR_NETRONOME is not set |
| | | +# CONFIG_NET_VENDOR_NI is not set |
| | | +# CONFIG_ETHOC is not set |
| | | +# CONFIG_NET_VENDOR_QUALCOMM is not set |
| | | +# CONFIG_NET_VENDOR_RENESAS is not set |
| | | +# CONFIG_NET_VENDOR_ROCKER is not set |
| | | +# CONFIG_NET_VENDOR_SAMSUNG is not set |
| | | +# CONFIG_NET_VENDOR_SEEQ is not set |
| | | +# CONFIG_NET_VENDOR_SOLARFLARE is not set |
| | | +# CONFIG_NET_VENDOR_SMSC is not set |
| | | +# CONFIG_NET_VENDOR_SOCIONEXT is not set |
| | | +# CONFIG_NET_VENDOR_STMICRO is not set |
| | | +# CONFIG_NET_VENDOR_SYNOPSYS is not set |
| | | +# CONFIG_NET_VENDOR_VIA is not set |
| | | +# CONFIG_NET_VENDOR_WIZNET is not set |
| | | +CONFIG_PHYLIB=y |
| | | +CONFIG_SWPHY=y |
| | | + |
| | | +# |
| | | +# MDIO bus device drivers |
| | | +# |
| | | +CONFIG_MDIO_DEVICE=y |
| | | +CONFIG_MDIO_BUS=y |
| | | +# CONFIG_MDIO_BCM_UNIMAC is not set |
| | | +# CONFIG_MDIO_BITBANG is not set |
| | | +# CONFIG_MDIO_BUS_MUX_GPIO is not set |
| | | +# CONFIG_MDIO_BUS_MUX_MMIOREG is not set |
| | | +# CONFIG_MDIO_HISI_FEMAC is not set |
| | | +# CONFIG_MDIO_MSCC_MIIM is not set |
| | | +CONFIG_PHYLIB=y |
| | | +CONFIG_SWPHY=y |
| | | +# CONFIG_LED_TRIGGER_PHY is not set |
| | | + |
| | | +# |
| | | +# MII PHY device drivers |
| | | +# |
| | | +# CONFIG_AMD_PHY is not set |
| | | +# CONFIG_AQUANTIA_PHY is not set |
| | | +# CONFIG_ASIX_PHY is not set |
| | | +# CONFIG_AT803X_PHY is not set |
| | | +# CONFIG_BCM7XXX_PHY is not set |
| | | +# CONFIG_BCM87XX_PHY is not set |
| | | +# CONFIG_BROADCOM_PHY is not set |
| | | +# CONFIG_CICADA_PHY is not set |
| | | +# CONFIG_CORTINA_PHY is not set |
| | | +# CONFIG_DAVICOM_PHY is not set |
| | | +# CONFIG_DP83822_PHY is not set |
| | | +# CONFIG_DP83TC811_PHY is not set |
| | | +# CONFIG_DP83848_PHY is not set |
| | | +# CONFIG_DP83867_PHY is not set |
| | | +CONFIG_FIXED_PHY=y |
| | |
| | | +# CONFIG_LSI_ET1011C_PHY is not set |
| | | +# CONFIG_LXT_PHY is not set |
| | | +# CONFIG_MARVELL_PHY is not set |
| | | +# CONFIG_MARVELL_10G_PHY is not set |
| | | +CONFIG_MICREL_PHY=y |
| | | +# CONFIG_MICROCHIP_PHY is not set |
| | | +# CONFIG_MICROCHIP_T1_PHY is not set |
| | | +# CONFIG_MICROSEMI_PHY is not set |
| | | +# CONFIG_NATIONAL_PHY is not set |
| | | +# CONFIG_QSEMI_PHY is not set |
| | | +# CONFIG_REALTEK_PHY is not set |
| | | +# CONFIG_RENESAS_PHY is not set |
| | | +# CONFIG_ROCKCHIP_PHY is not set |
| | | +# CONFIG_SMSC_PHY is not set |
| | | +# CONFIG_STE10XP is not set |
| | | +# CONFIG_TERANETICS_PHY is not set |
| | |
| | | +# CONFIG_USB_CATC is not set |
| | | +# CONFIG_USB_KAWETH is not set |
| | | +# CONFIG_USB_PEGASUS is not set |
| | | +CONFIG_USB_RTL8150=y |
| | | +# CONFIG_USB_RTL8150 is not set |
| | | +CONFIG_USB_RTL8152=y |
| | | +# CONFIG_USB_LAN78XX is not set |
| | | +# CONFIG_USB_USBNET is not set |
| | | +# CONFIG_USB_HSO is not set |
| | | +# CONFIG_USB_IPHETH is not set |
| | | +CONFIG_WLAN=y |
| | | +# CONFIG_WIRELESS_WDS is not set |
| | | +# CONFIG_WLAN_VENDOR_ADMTEK is not set |
| | | +# CONFIG_WLAN_VENDOR_ATH is not set |
| | | +# CONFIG_WLAN_VENDOR_ATMEL is not set |
| | |
| | | +# CONFIG_WLAN_VENDOR_MARVELL is not set |
| | | +CONFIG_WLAN_VENDOR_MEDIATEK=y |
| | | +CONFIG_MT7601U=y |
| | | +CONFIG_MT76_CORE=y |
| | | +CONFIG_MT76_LEDS=y |
| | | +CONFIG_MT76_USB=y |
| | | +CONFIG_MT76x2_COMMON=y |
| | | +CONFIG_MT76x0U=y |
| | | +CONFIG_MT76x2U=y |
| | | +CONFIG_WLAN_VENDOR_RALINK=y |
| | | +CONFIG_RT2X00=y |
| | | +# CONFIG_RT2500USB is not set |
| | |
| | | +# CONFIG_WLAN_VENDOR_ST is not set |
| | | +# CONFIG_WLAN_VENDOR_TI is not set |
| | | +# CONFIG_WLAN_VENDOR_ZYDAS is not set |
| | | +# CONFIG_WLAN_VENDOR_QUANTENNA is not set |
| | | +# CONFIG_MAC80211_HWSIM is not set |
| | | +# CONFIG_USB_NET_RNDIS_WLAN is not set |
| | | + |
| | |
| | | +# Enable WiMAX (Networking options) to see the WiMAX drivers |
| | | +# |
| | | +# CONFIG_WAN is not set |
| | | +# CONFIG_NETDEVSIM is not set |
| | | +# CONFIG_NET_FAILOVER is not set |
| | | +# CONFIG_ISDN is not set |
| | | +# CONFIG_NVM is not set |
| | | + |
| | | +# |
| | | +# Input device support |
| | |
| | | +# |
| | | +# Userland interfaces |
| | | +# |
| | | +CONFIG_INPUT_MOUSEDEV=y |
| | | +CONFIG_INPUT_MOUSEDEV_PSAUX=y |
| | | +CONFIG_INPUT_MOUSEDEV_SCREEN_X=320 |
| | | +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=240 |
| | | +# CONFIG_INPUT_MOUSEDEV is not set |
| | | +# CONFIG_INPUT_JOYDEV is not set |
| | | +CONFIG_INPUT_EVDEV=y |
| | | +# CONFIG_INPUT_EVBUG is not set |
| | |
| | | +# CONFIG_KEYBOARD_ATKBD is not set |
| | | +# CONFIG_KEYBOARD_QT1070 is not set |
| | | +# CONFIG_KEYBOARD_QT2160 is not set |
| | | +# CONFIG_KEYBOARD_DLINK_DIR685 is not set |
| | | +# CONFIG_KEYBOARD_LKKBD is not set |
| | | +CONFIG_KEYBOARD_GPIO=y |
| | | +CONFIG_KEYBOARD_GPIO_POLLED=y |
| | |
| | | +# CONFIG_KEYBOARD_STOWAWAY is not set |
| | | +# CONFIG_KEYBOARD_SUNKBD is not set |
| | | +# CONFIG_KEYBOARD_OMAP4 is not set |
| | | +# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set |
| | | +# CONFIG_KEYBOARD_XTKBD is not set |
| | | +# CONFIG_KEYBOARD_CAP11XX is not set |
| | | +# CONFIG_KEYBOARD_BCM is not set |
| | |
| | | +# CONFIG_SERIAL_NONSTANDARD is not set |
| | | +# CONFIG_N_GSM is not set |
| | | +# CONFIG_TRACE_SINK is not set |
| | | +CONFIG_LDISC_AUTOLOAD=y |
| | | +CONFIG_DEVMEM=y |
| | | +CONFIG_DEVKMEM=y |
| | | + |
| | |
| | | +# CONFIG_SERIAL_FSL_LPUART is not set |
| | | +# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set |
| | | +# CONFIG_SERIAL_ST_ASC is not set |
| | | +# CONFIG_SERIAL_STM32 is not set |
| | | +CONFIG_SERIAL_MCTRL_GPIO=y |
| | | +# CONFIG_SERIAL_DEV_BUS is not set |
| | | +# CONFIG_TTY_PRINTK is not set |
| | | +# CONFIG_HVC_DCC is not set |
| | | +# CONFIG_IPMI_HANDLER is not set |
| | | +CONFIG_HW_RANDOM=y |
| | | +# CONFIG_HW_RANDOM_TIMERIOMEM is not set |
| | | +CONFIG_HW_RANDOM_ATMEL=y |
| | | +# CONFIG_R3964 is not set |
| | | +# CONFIG_RAW_DRIVER is not set |
| | | +# CONFIG_TCG_TPM is not set |
| | | +# CONFIG_XILLYBUS is not set |
| | |
| | | +# |
| | | +# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set |
| | | +# CONFIG_I2C_MUX_GPIO is not set |
| | | +# CONFIG_I2C_MUX_GPMUX is not set |
| | | +# CONFIG_I2C_MUX_LTC4306 is not set |
| | | +# CONFIG_I2C_MUX_PCA9541 is not set |
| | | +# CONFIG_I2C_MUX_PCA954x is not set |
| | | +# CONFIG_I2C_MUX_PINCTRL is not set |
| | | +# CONFIG_I2C_MUX_REG is not set |
| | | +# CONFIG_I2C_DEMUX_PINCTRL is not set |
| | | +# CONFIG_I2C_MUX_MLXCPLD is not set |
| | | +CONFIG_I2C_HELPER_AUTO=y |
| | | +CONFIG_I2C_ALGOBIT=y |
| | | + |
| | |
| | | +# CONFIG_I2C_DESIGNWARE_PLATFORM is not set |
| | | +# CONFIG_I2C_EMEV2 is not set |
| | | +CONFIG_I2C_GPIO=y |
| | | +# CONFIG_I2C_GPIO_FAULT_INJECTOR 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 |
| | |
| | | +CONFIG_SPI=y |
| | | +# CONFIG_SPI_DEBUG is not set |
| | | +CONFIG_SPI_MASTER=y |
| | | +CONFIG_SPI_MEM=y |
| | | + |
| | | +# |
| | | +# SPI Master Controller Drivers |
| | |
| | | +# CONFIG_SPI_ALTERA is not set |
| | | +CONFIG_SPI_ATMEL=y |
| | | +# CONFIG_SPI_AT91_USART is not set |
| | | +CONFIG_SPI_ATMEL_QUADSPI=y |
| | | +# CONFIG_SPI_AXI_SPI_ENGINE is not set |
| | | +CONFIG_SPI_BITBANG=y |
| | | +# CONFIG_SPI_CADENCE is not set |
| | |
| | | +CONFIG_SPI_GPIO=y |
| | | +# CONFIG_SPI_FSL_SPI is not set |
| | | +# CONFIG_SPI_OC_TINY 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_SPIDEV=y |
| | | +# CONFIG_SPI_LOOPBACK_TEST is not set |
| | | +# CONFIG_SPI_TLE62X0 is not set |
| | | +# CONFIG_SPI_SLAVE 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 |
| | |
| | | +# 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_PINCTRL_AT91=y |
| | | +CONFIG_PINCTRL_AT91PIO4=y |
| | | +# CONFIG_PINCTRL_AMD is not set |
| | | +# CONFIG_PINCTRL_MCP23S08 is not set |
| | | +# CONFIG_PINCTRL_SINGLE is not set |
| | | +# CONFIG_PINCTRL_SX150X is not set |
| | | +CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y |
| | | +CONFIG_GPIOLIB=y |
| | | +CONFIG_GPIOLIB_FASTPATH_LIMIT=512 |
| | | +CONFIG_OF_GPIO=y |
| | | +CONFIG_GPIOLIB_IRQCHIP=y |
| | | +# CONFIG_DEBUG_GPIO is not set |
| | |
| | | +# CONFIG_GPIO_74XX_MMIO is not set |
| | | +# CONFIG_GPIO_ALTERA is not set |
| | | +# CONFIG_GPIO_DWAPB is not set |
| | | +# CONFIG_GPIO_EM is not set |
| | | +# CONFIG_GPIO_FTGPIO010 is not set |
| | | +# CONFIG_GPIO_GENERIC_PLATFORM is not set |
| | | +# CONFIG_GPIO_GRGPIO is not set |
| | | +# CONFIG_GPIO_HLWD is not set |
| | | +# CONFIG_GPIO_MB86S7X is not set |
| | | +# CONFIG_GPIO_MOCKUP is not set |
| | | +# CONFIG_GPIO_MPC8XXX is not set |
| | | +# CONFIG_GPIO_SAMA5D2_PIOBU is not set |
| | | +CONFIG_GPIO_SYSCON=y |
| | | +# CONFIG_GPIO_XILINX is not set |
| | | +# CONFIG_GPIO_ZEVIO is not set |
| | | +# CONFIG_GPIO_ZX is not set |
| | | + |
| | | +# |
| | | +# I2C GPIO expanders |
| | |
| | | +# 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_TPIC2810 is not set |
| | | +# CONFIG_GPIO_TS4900 is not set |
| | | + |
| | | +# |
| | | +# MFD GPIO expanders |
| | |
| | | +# SPI GPIO expanders |
| | | +# |
| | | +# CONFIG_GPIO_74X164 is not set |
| | | +# CONFIG_GPIO_MAX3191X is not set |
| | | +# CONFIG_GPIO_MAX7301 is not set |
| | | +# CONFIG_GPIO_MC33880 is not set |
| | | +# CONFIG_GPIO_PISOSR is not set |
| | | + |
| | | +# |
| | | +# SPI or I2C GPIO expanders |
| | | +# |
| | | +# CONFIG_GPIO_MCP23S08 is not set |
| | | +# CONFIG_GPIO_XRA1403 is not set |
| | | + |
| | | +# |
| | | +# USB GPIO expanders |
| | |
| | | +# CONFIG_PDA_POWER is not set |
| | | +# CONFIG_GENERIC_ADC_BATTERY is not set |
| | | +# CONFIG_TEST_POWER is not set |
| | | +# CONFIG_CHARGER_ADP5061 is not set |
| | | +CONFIG_BATTERY_ACT8945A=y |
| | | +# CONFIG_BATTERY_DS2780 is not set |
| | | +# CONFIG_BATTERY_DS2781 is not set |
| | | +# CONFIG_BATTERY_DS2782 is not set |
| | | +# CONFIG_BATTERY_LEGO_EV3 is not set |
| | | +# CONFIG_BATTERY_SBS is not set |
| | | +# CONFIG_CHARGER_SBS is not set |
| | | +# CONFIG_MANAGER_SBS is not set |
| | | +# CONFIG_BATTERY_BQ27XXX is not set |
| | | +# CONFIG_BATTERY_MAX17040 is not set |
| | | +# CONFIG_BATTERY_MAX17042 is not set |
| | |
| | | +# CONFIG_CHARGER_LP8727 is not set |
| | | +# CONFIG_CHARGER_GPIO is not set |
| | | +# CONFIG_CHARGER_MANAGER is not set |
| | | +# CONFIG_CHARGER_LTC3651 is not set |
| | | +# CONFIG_CHARGER_DETECTOR_MAX14656 is not set |
| | | +# CONFIG_CHARGER_BQ2415X is not set |
| | | +# CONFIG_CHARGER_BQ24190 is not set |
| | | +# CONFIG_CHARGER_BQ24257 is not set |
| | | +# CONFIG_CHARGER_BQ24735 is not set |
| | | +# CONFIG_CHARGER_BQ25890 is not set |
| | |
| | | +CONFIG_WATCHDOG=y |
| | | +CONFIG_WATCHDOG_CORE=y |
| | | +# CONFIG_WATCHDOG_NOWAYOUT is not set |
| | | +CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y |
| | | +# CONFIG_WATCHDOG_SYSFS is not set |
| | | + |
| | | +# |
| | |
| | | +CONFIG_AT91SAM9X_WATCHDOG=y |
| | | +CONFIG_SAMA5D4_WATCHDOG=y |
| | | +# CONFIG_CADENCE_WATCHDOG is not set |
| | | +# CONFIG_FTWDT010_WATCHDOG is not set |
| | | +# CONFIG_DW_WATCHDOG is not set |
| | | +# CONFIG_MAX63XX_WATCHDOG is not set |
| | | +# CONFIG_MEN_A21_WDT is not set |
| | |
| | | +# |
| | | +# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set |
| | | +CONFIG_SSB_POSSIBLE=y |
| | | + |
| | | +# |
| | | +# Sonics Silicon Backplane |
| | | +# |
| | | +# CONFIG_SSB is not set |
| | | +CONFIG_BCMA_POSSIBLE=y |
| | | + |
| | | +# |
| | | +# Broadcom specific AMBA |
| | | +# |
| | | +# CONFIG_BCMA is not set |
| | | + |
| | | +# |
| | |
| | | +CONFIG_MFD_AT91_USART=y |
| | | +CONFIG_MFD_ATMEL_FLEXCOM=y |
| | | +CONFIG_MFD_ATMEL_HLCDC=y |
| | | +CONFIG_MFD_ATMEL_SMC=y |
| | | +# CONFIG_MFD_BCM590XX is not set |
| | | +# CONFIG_MFD_BD9571MWV is not set |
| | | +# CONFIG_MFD_AXP20X_I2C is not set |
| | | +# CONFIG_MFD_CROS_EC is not set |
| | | +# CONFIG_MFD_MADERA is not set |
| | | +# CONFIG_MFD_ASIC3 is not set |
| | | +# CONFIG_PMIC_DA903X is not set |
| | | +# CONFIG_MFD_DA9052_SPI is not set |
| | |
| | | +# CONFIG_MFD_DA9063 is not set |
| | | +# CONFIG_MFD_DA9150 is not set |
| | | +# CONFIG_MFD_DLN2 is not set |
| | | +# CONFIG_MFD_EXYNOS_LPASS is not set |
| | | +# CONFIG_MFD_MC13XXX_SPI is not set |
| | | +# CONFIG_MFD_MC13XXX_I2C is not set |
| | | +# CONFIG_MFD_HI6421_PMIC 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_MT6397 is not set |
| | | +# CONFIG_MFD_MENF21BMC is not set |
| | | +# CONFIG_EZX_PCAP is not set |
| | | +# CONFIG_MFD_CPCAP 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_PM8XXX is not set |
| | | +# CONFIG_MFD_RT5033 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_TI_AM335X_TSCADC is not set |
| | | +# CONFIG_MFD_LP3943 is not set |
| | | +# CONFIG_MFD_LP8788 is not set |
| | | +# CONFIG_MFD_TI_LMU is not set |
| | | +# CONFIG_MFD_PALMAS is not set |
| | | +# CONFIG_TPS6105X is not set |
| | | +# CONFIG_TPS65010 is not set |
| | |
| | | +# CONFIG_MFD_TPS65090 is not set |
| | | +# CONFIG_MFD_TPS65217 is not set |
| | | +# CONFIG_MFD_TI_LP873X is not set |
| | | +# CONFIG_MFD_TI_LP87565 is not set |
| | | +# CONFIG_MFD_TPS65218 is not set |
| | | +# CONFIG_MFD_TPS6586X is not set |
| | | +# CONFIG_MFD_TPS65910 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_WM831X_SPI is not set |
| | | +# CONFIG_MFD_WM8350_I2C is not set |
| | | +# CONFIG_MFD_WM8994 is not set |
| | | +# CONFIG_MFD_ROHM_BD718XX is not set |
| | | +CONFIG_REGULATOR=y |
| | | +# CONFIG_REGULATOR_DEBUG is not set |
| | | +CONFIG_REGULATOR_FIXED_VOLTAGE=y |
| | | +CONFIG_REGULATOR_VIRTUAL_CONSUMER=y |
| | | +# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set |
| | | +# CONFIG_REGULATOR_88PG86X is not set |
| | | +CONFIG_REGULATOR_ACT8865=y |
| | | +CONFIG_REGULATOR_ACT8945A=y |
| | | +# CONFIG_REGULATOR_AD5398 is not set |
| | |
| | | +# CONFIG_REGULATOR_MAX8649 is not set |
| | | +# CONFIG_REGULATOR_MAX8660 is not set |
| | | +# CONFIG_REGULATOR_MAX8952 is not set |
| | | +# CONFIG_REGULATOR_MCP16502 is not set |
| | | +# CONFIG_REGULATOR_MT6311 is not set |
| | | +# CONFIG_REGULATOR_PFUZE100 is not set |
| | | +# CONFIG_REGULATOR_PV88060 is not set |
| | | +# CONFIG_REGULATOR_PV88080 is not set |
| | | +# CONFIG_REGULATOR_PV88090 is not set |
| | | +# CONFIG_REGULATOR_PWM is not set |
| | | +# CONFIG_REGULATOR_SY8106A is not set |
| | | +# 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_TPS65132 is not set |
| | | +# CONFIG_REGULATOR_TPS6524X is not set |
| | | +# CONFIG_REGULATOR_VCTRL is not set |
| | | +CONFIG_RC_CORE=y |
| | | +CONFIG_RC_MAP=y |
| | | +# CONFIG_LIRC is not set |
| | | +CONFIG_RC_DECODERS=y |
| | | +CONFIG_IR_NEC_DECODER=y |
| | | +CONFIG_IR_RC5_DECODER=y |
| | | +CONFIG_IR_RC6_DECODER=y |
| | | +CONFIG_IR_JVC_DECODER=y |
| | | +CONFIG_IR_SONY_DECODER=y |
| | | +CONFIG_IR_SANYO_DECODER=y |
| | | +CONFIG_IR_SHARP_DECODER=y |
| | | +CONFIG_IR_MCE_KBD_DECODER=y |
| | | +CONFIG_IR_XMP_DECODER=y |
| | | +# CONFIG_IR_IMON_DECODER is not set |
| | | +# CONFIG_RC_DEVICES is not set |
| | | +CONFIG_MEDIA_SUPPORT=y |
| | | + |
| | | +# |
| | |
| | | +# 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 is not set |
| | | +# CONFIG_MEDIA_CEC_SUPPORT is not set |
| | | +CONFIG_MEDIA_CONTROLLER=y |
| | | +# CONFIG_MEDIA_CONTROLLER_DVB is not set |
| | | +CONFIG_VIDEO_DEV=y |
| | | +CONFIG_VIDEO_V4L2_SUBDEV_API=y |
| | | +CONFIG_VIDEO_V4L2=y |
| | | +# CONFIG_VIDEO_ADV_DEBUG is not set |
| | | +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set |
| | | +CONFIG_VIDEOBUF_GEN=y |
| | | +CONFIG_VIDEOBUF2_CORE=y |
| | | +CONFIG_VIDEOBUF2_MEMOPS=y |
| | | +CONFIG_VIDEOBUF2_DMA_CONTIG=y |
| | | +CONFIG_VIDEOBUF2_VMALLOC=y |
| | | +# CONFIG_TTPCI_EEPROM is not set |
| | | +CONFIG_V4L2_FWNODE=y |
| | | + |
| | | +# |
| | | +# Media drivers |
| | |
| | | +# |
| | | +# CONFIG_VIDEO_EM28XX is not set |
| | | +CONFIG_V4L_PLATFORM_DRIVERS=y |
| | | +# CONFIG_VIDEO_CADENCE is not set |
| | | +# CONFIG_VIDEO_MUX is not set |
| | | +CONFIG_SOC_CAMERA=y |
| | | +# CONFIG_SOC_CAMERA_PLATFORM is not set |
| | | +# CONFIG_VIDEO_XILINX is not set |
| | |
| | | +# Supported MMC/SDIO adapters |
| | | +# |
| | | +# CONFIG_CYPRESS_FIRMWARE is not set |
| | | +CONFIG_VIDEOBUF2_CORE=y |
| | | +CONFIG_VIDEOBUF2_V4L2=y |
| | | +CONFIG_VIDEOBUF2_MEMOPS=y |
| | | +CONFIG_VIDEOBUF2_DMA_CONTIG=y |
| | | +CONFIG_VIDEOBUF2_VMALLOC=y |
| | | + |
| | | +# |
| | | +# Media ancillary drivers (tuners, sensors, i2c, spi, frontends) |
| | | +# |
| | | +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y |
| | | +CONFIG_VIDEO_IR_I2C=y |
| | | + |
| | | +# |
| | | +# Audio decoders, processors and mixers |
| | |
| | | +# |
| | | + |
| | | +# |
| | | +# SDR tuner chips |
| | | +# |
| | | + |
| | | +# |
| | | +# Miscellaneous helper chips |
| | | +# |
| | | + |
| | |
| | | +# |
| | | +# soc_camera sensor drivers |
| | | +# |
| | | +# CONFIG_SOC_CAMERA_IMX074 is not set |
| | | +# CONFIG_SOC_CAMERA_MT9M001 is not set |
| | | +# CONFIG_SOC_CAMERA_MT9M111 is not set |
| | | +# CONFIG_SOC_CAMERA_MT9T031 is not set |
| | | +# CONFIG_SOC_CAMERA_MT9T112 is not set |
| | | +# CONFIG_SOC_CAMERA_MT9V022 is not set |
| | | +# CONFIG_SOC_CAMERA_OV5642 is not set |
| | | +# CONFIG_SOC_CAMERA_OV6650 is not set |
| | | +# CONFIG_SOC_CAMERA_OV772X is not set |
| | | +# CONFIG_SOC_CAMERA_OV9640 is not set |
| | | +# CONFIG_SOC_CAMERA_OV9740 is not set |
| | |
| | | +# CONFIG_SOC_CAMERA_TW9910 is not set |
| | | + |
| | | +# |
| | | +# Media SPI Adapters |
| | | +# |
| | | + |
| | | +# |
| | | +# Tools to develop new frontends |
| | | +# |
| | | +# CONFIG_DVB_DUMMY_FE is not set |
| | | + |
| | | +# |
| | | +# Graphics support |
| | |
| | | +# CONFIG_IMX_IPUV3_CORE is not set |
| | | +CONFIG_DRM=y |
| | | +# CONFIG_DRM_DP_AUX_CHARDEV is not set |
| | | +# CONFIG_DRM_DEBUG_MM is not set |
| | | +# CONFIG_DRM_DEBUG_SELFTEST is not set |
| | | +CONFIG_DRM_KMS_HELPER=y |
| | | +CONFIG_DRM_KMS_FB_HELPER=y |
| | | +CONFIG_DRM_FBDEV_EMULATION=y |
| | | +CONFIG_DRM_FBDEV_OVERALLOC=100 |
| | | +# CONFIG_DRM_FBDEV_LEAK_PHYS_SMEM is not set |
| | | +# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set |
| | | +# CONFIG_DRM_DP_CEC is not set |
| | | +CONFIG_DRM_GEM_CMA_HELPER=y |
| | | +CONFIG_DRM_KMS_CMA_HELPER=y |
| | | + |
| | |
| | | +# CONFIG_DRM_I2C_CH7006 is not set |
| | | +# CONFIG_DRM_I2C_SIL164 is not set |
| | | +# CONFIG_DRM_I2C_NXP_TDA998X is not set |
| | | +# CONFIG_DRM_I2C_NXP_TDA9950 is not set |
| | | +# CONFIG_DRM_HDLCD is not set |
| | | +# CONFIG_DRM_MALI_DISPLAY is not set |
| | | + |
| | | +# |
| | | +# ACP (Audio CoProcessor) Configuration |
| | | +# |
| | | + |
| | | +# |
| | | +# AMD Library routines |
| | | +# |
| | | +# CONFIG_DRM_VGEM is not set |
| | | +# CONFIG_DRM_VKMS is not set |
| | | +# CONFIG_DRM_EXYNOS is not set |
| | | +# CONFIG_DRM_UDL is not set |
| | | +# CONFIG_DRM_ARMADA is not set |
| | | +CONFIG_DRM_ATMEL_HLCDC=y |
| | | +# CONFIG_DRM_RCAR_DW_HDMI is not set |
| | | +# CONFIG_DRM_RCAR_LVDS is not set |
| | | +# CONFIG_DRM_OMAP is not set |
| | | +# CONFIG_DRM_TILCDC is not set |
| | | +# CONFIG_DRM_FSL_DCU is not set |
| | | +# CONFIG_DRM_STM is not set |
| | | +CONFIG_DRM_PANEL=y |
| | | + |
| | | +# |
| | | +# Display Panels |
| | | +# |
| | | +# CONFIG_DRM_PANEL_ARM_VERSATILE is not set |
| | | +# CONFIG_DRM_PANEL_LVDS is not set |
| | | +CONFIG_DRM_PANEL_SIMPLE=y |
| | | +# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set |
| | | +# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set |
| | | +# CONFIG_DRM_PANEL_LG_LG4573 is not set |
| | | +# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set |
| | | +# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set |
| | | +# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set |
| | | +CONFIG_DRM_BRIDGE=y |
| | | +CONFIG_DRM_PANEL_BRIDGE=y |
| | | + |
| | | +# |
| | | +# Display Interface Bridges |
| | | +# |
| | | +# CONFIG_DRM_ANALOGIX_ANX78XX is not set |
| | | +# CONFIG_DRM_CDNS_DSI is not set |
| | | +# CONFIG_DRM_DUMB_VGA_DAC is not set |
| | | +# CONFIG_DRM_LVDS_ENCODER is not set |
| | | +# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set |
| | | +# CONFIG_DRM_NXP_PTN3460 is not set |
| | | +# CONFIG_DRM_PARADE_PS8622 is not set |
| | | +# CONFIG_DRM_SIL_SII8620 is not set |
| | | +# CONFIG_DRM_SII902X is not set |
| | | +# CONFIG_DRM_SII9234 is not set |
| | | +# CONFIG_DRM_THINE_THC63LVD1024 is not set |
| | | +# CONFIG_DRM_TOSHIBA_TC358767 is not set |
| | | +# CONFIG_DRM_TI_TFP410 is not set |
| | | +# CONFIG_DRM_I2C_ADV7511 is not set |
| | | +# CONFIG_DRM_STI is not set |
| | | +# CONFIG_DRM_ARCPGU is not set |
| | | +# CONFIG_DRM_MXSFB is not set |
| | | +# CONFIG_DRM_TINYDRM is not set |
| | | +# CONFIG_DRM_PL111 is not set |
| | | +# CONFIG_DRM_TVE200 is not set |
| | | +# CONFIG_DRM_LEGACY is not set |
| | | +CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y |
| | | + |
| | | +# |
| | | +# Frame buffer Devices |
| | |
| | | +# CONFIG_FIRMWARE_EDID is not set |
| | | +CONFIG_FB_CMDLINE=y |
| | | +CONFIG_FB_NOTIFY=y |
| | | +# CONFIG_FB_DDC is not set |
| | | +# CONFIG_FB_BOOT_VESA_SUPPORT is not set |
| | | +CONFIG_FB_CFB_FILLRECT=y |
| | | +CONFIG_FB_CFB_COPYAREA=y |
| | | +CONFIG_FB_CFB_IMAGEBLIT=y |
| | | +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set |
| | | +CONFIG_FB_SYS_FILLRECT=y |
| | | +CONFIG_FB_SYS_COPYAREA=y |
| | | +CONFIG_FB_SYS_IMAGEBLIT=y |
| | | +# CONFIG_FB_FOREIGN_ENDIAN is not set |
| | | +CONFIG_FB_SYS_FOPS=y |
| | | +CONFIG_FB_DEFERRED_IO=y |
| | | +# CONFIG_FB_SVGALIB is not set |
| | | +# CONFIG_FB_MACMODES is not set |
| | | +# CONFIG_FB_BACKLIGHT is not set |
| | | +# CONFIG_FB_MODE_HELPERS is not set |
| | | +# CONFIG_FB_TILEBLITTING is not set |
| | | + |
| | |
| | | +# CONFIG_FB_VIRTUAL is not set |
| | | +# CONFIG_FB_METRONOME is not set |
| | | +# CONFIG_FB_BROADSHEET is not set |
| | | +# CONFIG_FB_AUO_K190X is not set |
| | | +# CONFIG_FB_SIMPLE is not set |
| | | +# CONFIG_FB_SSD1307 is not set |
| | | +CONFIG_BACKLIGHT_LCD_SUPPORT=y |
| | |
| | | +# CONFIG_LCD_AMS369FG06 is not set |
| | | +# CONFIG_LCD_LMS501KF03 is not set |
| | | +# CONFIG_LCD_HX8357 is not set |
| | | +# CONFIG_LCD_OTM3225A is not set |
| | | +CONFIG_BACKLIGHT_CLASS_DEVICE=y |
| | | +# CONFIG_BACKLIGHT_GENERIC is not set |
| | | +CONFIG_BACKLIGHT_PWM=y |
| | |
| | | +# CONFIG_BACKLIGHT_GPIO is not set |
| | | +# CONFIG_BACKLIGHT_LV5207LP is not set |
| | | +# CONFIG_BACKLIGHT_BD6107 is not set |
| | | +# CONFIG_VGASTATE is not set |
| | | +# CONFIG_BACKLIGHT_ARCXCNN is not set |
| | | +CONFIG_VIDEOMODE_HELPERS=y |
| | | +CONFIG_HDMI=y |
| | | + |
| | |
| | | +# CONFIG_FRAMEBUFFER_CONSOLE is not set |
| | | +# CONFIG_LOGO is not set |
| | | +CONFIG_SOUND=y |
| | | +# CONFIG_SOUND_OSS_CORE is not set |
| | | +CONFIG_SND=y |
| | | +CONFIG_SND_TIMER=y |
| | | +CONFIG_SND_PCM=y |
| | | +CONFIG_SND_DMAENGINE_PCM=y |
| | | +CONFIG_SND_JACK=y |
| | | +CONFIG_SND_JACK_INPUT_DEV=y |
| | | +# CONFIG_SND_SEQUENCER is not set |
| | | +# CONFIG_SND_MIXER_OSS is not set |
| | | +# CONFIG_SND_PCM_OSS is not set |
| | | +# CONFIG_SND_OSSEMUL is not set |
| | | +CONFIG_SND_PCM_TIMER=y |
| | | +# CONFIG_SND_DYNAMIC_MINORS is not set |
| | | +CONFIG_SND_SUPPORT_OLD_API=y |
| | |
| | | +CONFIG_SND_VERBOSE_PROCFS=y |
| | | +# CONFIG_SND_VERBOSE_PRINTK is not set |
| | | +# CONFIG_SND_DEBUG is not set |
| | | +# CONFIG_SND_RAWMIDI_SEQ is not set |
| | | +# 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_SEQUENCER is not set |
| | | +CONFIG_SND_DRIVERS=y |
| | | +# CONFIG_SND_DUMMY is not set |
| | | +# CONFIG_SND_ALOOP is not set |
| | |
| | | +CONFIG_SND_ARM=y |
| | | + |
| | | +# |
| | | +# Atmel devices (AVR32 and AT91) |
| | | +# Atmel devices (AT91) |
| | | +# |
| | | +# CONFIG_SND_ATMEL_AC97C is not set |
| | | +CONFIG_SND_SPI=y |
| | |
| | | +# CONFIG_SND_AT91_SOC_SAM9X5_WM8731 is not set |
| | | +CONFIG_SND_ATMEL_SOC_CLASSD=y |
| | | +CONFIG_SND_ATMEL_SOC_PDMIC=y |
| | | +# CONFIG_SND_ATMEL_SOC_TSE850_PCM5142 is not set |
| | | +CONFIG_SND_ATMEL_SOC_I2S=y |
| | | +# CONFIG_SND_SOC_MIKROE_PROTO is not set |
| | | +# CONFIG_SND_DESIGNWARE_I2S 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_SND_I2S_HI6210_I2S is not set |
| | | +# CONFIG_SND_SOC_IMG is not set |
| | | + |
| | | +# |
| | | +# STMicroelectronics STM32 SOC audio support |
| | | +# |
| | | +# CONFIG_SND_SOC_XTFPGA_I2S is not set |
| | | +# CONFIG_ZX_TDM is not set |
| | | +CONFIG_SND_SOC_I2C_AND_SPI=y |
| | | + |
| | | +# |
| | |
| | | +# |
| | | +# CONFIG_SND_SOC_AC97_CODEC is not set |
| | | +# CONFIG_SND_SOC_ADAU1701 is not set |
| | | +# CONFIG_SND_SOC_ADAU1761_I2C is not set |
| | | +# CONFIG_SND_SOC_ADAU1761_SPI is not set |
| | | +# CONFIG_SND_SOC_ADAU7002 is not set |
| | | +# CONFIG_SND_SOC_AK4104 is not set |
| | | +# CONFIG_SND_SOC_AK4458 is not set |
| | | +# CONFIG_SND_SOC_AK4554 is not set |
| | | +# CONFIG_SND_SOC_AK4613 is not set |
| | | +# CONFIG_SND_SOC_AK4642 is not set |
| | | +# CONFIG_SND_SOC_AK5386 is not set |
| | | +# CONFIG_SND_SOC_AK5558 is not set |
| | | +# CONFIG_SND_SOC_ALC5623 is not set |
| | | +# CONFIG_SND_SOC_BD28623 is not set |
| | | +# CONFIG_SND_SOC_BT_SCO is not set |
| | | +# CONFIG_SND_SOC_CS35L32 is not set |
| | | +# CONFIG_SND_SOC_CS35L33 is not set |
| | | +# CONFIG_SND_SOC_CS35L34 is not set |
| | | +# CONFIG_SND_SOC_CS35L35 is not set |
| | | +# CONFIG_SND_SOC_CS42L42 is not set |
| | | +# CONFIG_SND_SOC_CS42L51_I2C is not set |
| | | +# CONFIG_SND_SOC_CS42L52 is not set |
| | | +# CONFIG_SND_SOC_CS42L56 is not set |
| | |
| | | +# CONFIG_SND_SOC_CS4271_I2C is not set |
| | | +# CONFIG_SND_SOC_CS4271_SPI is not set |
| | | +# CONFIG_SND_SOC_CS42XX8_I2C is not set |
| | | +# CONFIG_SND_SOC_CS43130 is not set |
| | | +# CONFIG_SND_SOC_CS4349 is not set |
| | | +# CONFIG_SND_SOC_CS53L30 is not set |
| | | +# CONFIG_SND_SOC_ES8328 is not set |
| | | +# CONFIG_SND_SOC_ES7134 is not set |
| | | +# CONFIG_SND_SOC_ES7241 is not set |
| | | +# CONFIG_SND_SOC_ES8316 is not set |
| | | +# CONFIG_SND_SOC_ES8328_I2C is not set |
| | | +# CONFIG_SND_SOC_ES8328_SPI is not set |
| | | +# CONFIG_SND_SOC_GTM601 is not set |
| | | +# CONFIG_SND_SOC_INNO_RK3036 is not set |
| | | +# CONFIG_SND_SOC_MAX98504 is not set |
| | | +# CONFIG_SND_SOC_MAX9867 is not set |
| | | +# CONFIG_SND_SOC_MAX98927 is not set |
| | | +# CONFIG_SND_SOC_MAX98373 is not set |
| | | +# CONFIG_SND_SOC_MAX9860 is not set |
| | | +# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set |
| | | +# CONFIG_SND_SOC_PCM1681 is not set |
| | | +# CONFIG_SND_SOC_PCM1789_I2C is not set |
| | | +# CONFIG_SND_SOC_PCM179X_I2C is not set |
| | | +# CONFIG_SND_SOC_PCM179X_SPI is not set |
| | | +# CONFIG_SND_SOC_PCM186X_I2C is not set |
| | | +# CONFIG_SND_SOC_PCM186X_SPI is not set |
| | | +# CONFIG_SND_SOC_PCM3168A_I2C is not set |
| | | +# CONFIG_SND_SOC_PCM3168A_SPI is not set |
| | | +# CONFIG_SND_SOC_PCM512x_I2C is not set |
| | | +# CONFIG_SND_SOC_PCM512x_SPI is not set |
| | | +# CONFIG_SND_SOC_RT5616 is not set |
| | | +# CONFIG_SND_SOC_RT5631 is not set |
| | | +# CONFIG_SND_SOC_RT5677_SPI is not set |
| | | +# CONFIG_SND_SOC_SGTL5000 is not set |
| | | +# CONFIG_SND_SOC_SIMPLE_AMPLIFIER is not set |
| | | +# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set |
| | | +# CONFIG_SND_SOC_SPDIF is not set |
| | | +# CONFIG_SND_SOC_SSM2305 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_TAS5086 is not set |
| | | +# CONFIG_SND_SOC_TAS571X is not set |
| | | +# CONFIG_SND_SOC_TAS5720 is not set |
| | | +# CONFIG_SND_SOC_TAS6424 is not set |
| | | +# CONFIG_SND_SOC_TDA7419 is not set |
| | | +# CONFIG_SND_SOC_TFA9879 is not set |
| | | +# CONFIG_SND_SOC_TLV320AIC23_I2C is not set |
| | | +# CONFIG_SND_SOC_TLV320AIC23_SPI is not set |
| | | +# CONFIG_SND_SOC_TLV320AIC31XX is not set |
| | | +# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set |
| | | +# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set |
| | | +# CONFIG_SND_SOC_TLV320AIC3X is not set |
| | | +# CONFIG_SND_SOC_TS3A227E is not set |
| | | +# CONFIG_SND_SOC_TSCS42XX is not set |
| | | +# CONFIG_SND_SOC_TSCS454 is not set |
| | | +# CONFIG_SND_SOC_WM8510 is not set |
| | | +# CONFIG_SND_SOC_WM8523 is not set |
| | | +# CONFIG_SND_SOC_WM8524 is not set |
| | | +# CONFIG_SND_SOC_WM8580 is not set |
| | | +# CONFIG_SND_SOC_WM8711 is not set |
| | | +# CONFIG_SND_SOC_WM8728 is not set |
| | |
| | | +# CONFIG_SND_SOC_WM8753 is not set |
| | | +# CONFIG_SND_SOC_WM8770 is not set |
| | | +# CONFIG_SND_SOC_WM8776 is not set |
| | | +# CONFIG_SND_SOC_WM8782 is not set |
| | | +# CONFIG_SND_SOC_WM8804_I2C is not set |
| | | +# CONFIG_SND_SOC_WM8804_SPI is not set |
| | | +# CONFIG_SND_SOC_WM8903 is not set |
| | |
| | | +# CONFIG_SND_SOC_WM8974 is not set |
| | | +# CONFIG_SND_SOC_WM8978 is not set |
| | | +# CONFIG_SND_SOC_WM8985 is not set |
| | | +# CONFIG_SND_SOC_ZX_AUD96P22 is not set |
| | | +# CONFIG_SND_SOC_MAX9759 is not set |
| | | +# CONFIG_SND_SOC_MT6351 is not set |
| | | +# CONFIG_SND_SOC_NAU8540 is not set |
| | | +# CONFIG_SND_SOC_NAU8810 is not set |
| | | +# CONFIG_SND_SOC_NAU8824 is not set |
| | | +# CONFIG_SND_SOC_TPA6130A2 is not set |
| | | +# CONFIG_SND_SIMPLE_CARD is not set |
| | | +# CONFIG_SND_SIMPLE_SCU_CARD is not set |
| | | +# CONFIG_SOUND_PRIME is not set |
| | | +# CONFIG_SND_AUDIO_GRAPH_CARD is not set |
| | | +# CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set |
| | | + |
| | | +# |
| | | +# HID support |
| | |
| | | +# Special HID drivers |
| | | +# |
| | | +# CONFIG_HID_A4TECH is not set |
| | | +# CONFIG_HID_ACCUTOUCH is not set |
| | | +# CONFIG_HID_ACRUX is not set |
| | | +# CONFIG_HID_APPLE is not set |
| | | +# CONFIG_HID_APPLEIR is not set |
| | | +# CONFIG_HID_ASUS is not set |
| | | +# CONFIG_HID_AUREAL is not set |
| | | +# CONFIG_HID_BELKIN is not set |
| | | +# CONFIG_HID_BETOP_FF is not set |
| | | +# CONFIG_HID_CHERRY is not set |
| | | +# CONFIG_HID_CHICONY is not set |
| | | +# CONFIG_HID_CORSAIR is not set |
| | | +# CONFIG_HID_COUGAR is not set |
| | | +# CONFIG_HID_PRODIKEYS is not set |
| | | +# CONFIG_HID_CMEDIA is not set |
| | | +# CONFIG_HID_CP2112 is not set |
| | | +# CONFIG_HID_CYPRESS is not set |
| | | +# CONFIG_HID_DRAGONRISE is not set |
| | | +# CONFIG_HID_EMS_FF is not set |
| | | +# CONFIG_HID_ELAN is not set |
| | | +# CONFIG_HID_ELECOM is not set |
| | | +# CONFIG_HID_ELO is not set |
| | | +# CONFIG_HID_EZKEY is not set |
| | | +# CONFIG_HID_GEMBIRD is not set |
| | | +# CONFIG_HID_GFRM is not set |
| | | +# CONFIG_HID_HOLTEK is not set |
| | | +# CONFIG_HID_GOOGLE_HAMMER is not set |
| | | +# CONFIG_HID_GT683R is not set |
| | | +# CONFIG_HID_KEYTOUCH is not set |
| | | +# CONFIG_HID_KYE is not set |
| | |
| | | +# CONFIG_HID_WALTOP is not set |
| | | +# CONFIG_HID_GYRATION is not set |
| | | +# CONFIG_HID_ICADE is not set |
| | | +# CONFIG_HID_ITE is not set |
| | | +# CONFIG_HID_JABRA is not set |
| | | +# CONFIG_HID_TWINHAN is not set |
| | | +# CONFIG_HID_KENSINGTON is not set |
| | | +# CONFIG_HID_LCPOWER is not set |
| | |
| | | +# CONFIG_HID_LENOVO is not set |
| | | +# CONFIG_HID_LOGITECH is not set |
| | | +# CONFIG_HID_MAGICMOUSE is not set |
| | | +# CONFIG_HID_MAYFLASH is not set |
| | | +# CONFIG_HID_REDRAGON is not set |
| | | +# CONFIG_HID_MICROSOFT is not set |
| | | +# CONFIG_HID_MONTEREY is not set |
| | | +# CONFIG_HID_MULTITOUCH is not set |
| | | +# CONFIG_HID_NTI is not set |
| | | +# CONFIG_HID_NTRIG is not set |
| | | +# CONFIG_HID_ORTEK is not set |
| | | +# CONFIG_HID_PANTHERLORD is not set |
| | |
| | | +# CONFIG_HID_PICOLCD is not set |
| | | +# CONFIG_HID_PLANTRONICS is not set |
| | | +# CONFIG_HID_PRIMAX is not set |
| | | +# CONFIG_HID_RETRODE is not set |
| | | +# CONFIG_HID_ROCCAT is not set |
| | | +# CONFIG_HID_SAITEK is not set |
| | | +# CONFIG_HID_SAMSUNG is not set |
| | | +# CONFIG_HID_SONY is not set |
| | | +# CONFIG_HID_SPEEDLINK is not set |
| | | +# CONFIG_HID_STEAM is not set |
| | | +# CONFIG_HID_STEELSERIES is not set |
| | | +# CONFIG_HID_SUNPLUS is not set |
| | | +# CONFIG_HID_RMI is not set |
| | |
| | | +# CONFIG_HID_TOPSEED is not set |
| | | +# CONFIG_HID_THINGM is not set |
| | | +# CONFIG_HID_THRUSTMASTER is not set |
| | | +# CONFIG_HID_UDRAW_PS3 is not set |
| | | +# CONFIG_HID_WACOM is not set |
| | | +# CONFIG_HID_WIIMOTE is not set |
| | | +# CONFIG_HID_XINMO is not set |
| | |
| | | +# CONFIG_USB_EHCI_HCD_PLATFORM is not set |
| | | +# CONFIG_USB_OXU210HP_HCD is not set |
| | | +# CONFIG_USB_ISP116X_HCD is not set |
| | | +# CONFIG_USB_ISP1362_HCD is not set |
| | | +# CONFIG_USB_FOTG210_HCD is not set |
| | | +# CONFIG_USB_MAX3421_HCD is not set |
| | | +CONFIG_USB_OHCI_HCD=y |
| | |
| | | +# 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_F8153X 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_WISHBONE is not set |
| | | +# CONFIG_USB_SERIAL_SSU100 is not set |
| | | +# CONFIG_USB_SERIAL_QT2 is not set |
| | | +# CONFIG_USB_SERIAL_UPD78F0730 is not set |
| | | +# CONFIG_USB_SERIAL_DEBUG is not set |
| | | + |
| | | +# |
| | |
| | | +# CONFIG_USB_ISIGHTFW is not set |
| | | +# CONFIG_USB_YUREX is not set |
| | | +# CONFIG_USB_EZUSB_FX2 is not set |
| | | +# CONFIG_USB_HUB_USB251XB is not set |
| | | +# CONFIG_USB_HSIC_USB3503 is not set |
| | | +# CONFIG_USB_HSIC_USB4604 is not set |
| | | +# CONFIG_USB_LINK_LAYER_TEST is not set |
| | |
| | | +# |
| | | +# USB Physical Layer drivers |
| | | +# |
| | | +# CONFIG_USB_PHY is not set |
| | | +# CONFIG_NOP_USB_XCEIV is not set |
| | | +# CONFIG_USB_GPIO_VBUS is not set |
| | | +# CONFIG_USB_ISP1301 is not set |
| | |
| | | +# CONFIG_USB_PXA27X is not set |
| | | +# CONFIG_USB_MV_UDC is not set |
| | | +# CONFIG_USB_MV_U3D is not set |
| | | +# CONFIG_USB_SNP_UDC_PLAT is not set |
| | | +# CONFIG_USB_M66592 is not set |
| | | +# CONFIG_USB_BDC_UDC is not set |
| | | +# CONFIG_USB_NET2272 is not set |
| | |
| | | +CONFIG_USB_G_HID=m |
| | | +# CONFIG_USB_G_DBGP is not set |
| | | +CONFIG_USB_G_WEBCAM=m |
| | | +# CONFIG_TYPEC is not set |
| | | +# CONFIG_USB_ROLE_SWITCH is not set |
| | | +# CONFIG_USB_LED_TRIG is not set |
| | | +# CONFIG_USB_ULPI_BUS is not set |
| | | +# CONFIG_UWB is not set |
| | | +CONFIG_MMC=y |
| | | +# CONFIG_MMC_DEBUG is not set |
| | | +CONFIG_PWRSEQ_EMMC=y |
| | | +CONFIG_PWRSEQ_SIMPLE=y |
| | | + |
| | | +# |
| | | +# MMC/SD/SDIO Card Drivers |
| | | +# |
| | | +CONFIG_MMC_BLOCK=y |
| | | +CONFIG_MMC_BLOCK_MINORS=8 |
| | | +# CONFIG_MMC_BLOCK_BOUNCE is not set |
| | | +# CONFIG_SDIO_UART is not set |
| | | +# CONFIG_MMC_TEST is not set |
| | | + |
| | | +# |
| | | +# MMC/SD/SDIO Host Controller Drivers |
| | | +# |
| | | +# CONFIG_MMC_DEBUG is not set |
| | | +CONFIG_MMC_SDHCI=y |
| | | +CONFIG_MMC_SDHCI_IO_ACCESSORS=y |
| | | +CONFIG_MMC_SDHCI_PLTFM=y |
| | | +# CONFIG_MMC_SDHCI_OF_ARASAN is not set |
| | | +CONFIG_MMC_SDHCI_OF_AT91=y |
| | | +# CONFIG_MMC_SDHCI_OF_DWCMSHC is not set |
| | | +# CONFIG_MMC_SDHCI_CADENCE is not set |
| | | +# CONFIG_MMC_SDHCI_F_SDH30 is not set |
| | | +CONFIG_MMC_ATMELMCI=y |
| | | +# CONFIG_MMC_SPI is not set |
| | |
| | | +# CONFIG_MMC_VUB300 is not set |
| | | +# CONFIG_MMC_USHC is not set |
| | | +# CONFIG_MMC_USDHI6ROL0 is not set |
| | | +# CONFIG_MMC_CQHCI is not set |
| | | +# CONFIG_MMC_MTK is not set |
| | | +# CONFIG_MMC_SDHCI_XENON is not set |
| | | +# CONFIG_MMC_SDHCI_OMAP is not set |
| | | +# CONFIG_MEMSTICK is not set |
| | | +CONFIG_NEW_LEDS=y |
| | | +CONFIG_LEDS_CLASS=y |
| | | +# CONFIG_LEDS_CLASS_FLASH is not set |
| | | +# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set |
| | | + |
| | | +# |
| | | +# LED drivers |
| | | +# |
| | | +# CONFIG_LEDS_BCM6328 is not set |
| | | +# CONFIG_LEDS_BCM6358 is not set |
| | | +# CONFIG_LEDS_CR0014114 is not set |
| | | +# CONFIG_LEDS_LM3530 is not set |
| | | +# CONFIG_LEDS_LM3642 is not set |
| | | +# CONFIG_LEDS_LM3692X is not set |
| | | +# CONFIG_LEDS_PCA9532 is not set |
| | | +CONFIG_LEDS_GPIO=y |
| | | +# CONFIG_LEDS_LP3944 is not set |
| | | +# CONFIG_LEDS_LP3952 is not set |
| | | +# CONFIG_LEDS_LP5521 is not set |
| | | +# CONFIG_LEDS_LP5523 is not set |
| | | +# CONFIG_LEDS_LP5562 is not set |
| | |
| | | +# |
| | | +# CONFIG_LEDS_BLINKM is not set |
| | | +# CONFIG_LEDS_SYSCON is not set |
| | | +# CONFIG_LEDS_MLXREG is not set |
| | | +# CONFIG_LEDS_USER is not set |
| | | + |
| | | +# |
| | | +# LED Triggers |
| | |
| | | +CONFIG_LEDS_TRIGGER_HEARTBEAT=y |
| | | +# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set |
| | | +CONFIG_LEDS_TRIGGER_CPU=y |
| | | +# CONFIG_LEDS_TRIGGER_ACTIVITY is not set |
| | | +CONFIG_LEDS_TRIGGER_GPIO=y |
| | | +# CONFIG_LEDS_TRIGGER_DEFAULT_ON is not set |
| | | + |
| | |
| | | +# CONFIG_LEDS_TRIGGER_TRANSIENT is not set |
| | | +# CONFIG_LEDS_TRIGGER_CAMERA is not set |
| | | +# CONFIG_LEDS_TRIGGER_PANIC is not set |
| | | +# CONFIG_LEDS_TRIGGER_NETDEV is not set |
| | | +# CONFIG_ACCESSIBILITY is not set |
| | | +# CONFIG_INFINIBAND is not set |
| | | +CONFIG_EDAC_ATOMIC_SCRUB=y |
| | | +CONFIG_EDAC_SUPPORT=y |
| | | +# CONFIG_EDAC is not set |
| | | +CONFIG_RTC_LIB=y |
| | | +CONFIG_RTC_CLASS=y |
| | | +CONFIG_RTC_HCTOSYS=y |
| | |
| | | +CONFIG_RTC_SYSTOHC=y |
| | | +CONFIG_RTC_SYSTOHC_DEVICE="rtc0" |
| | | +# CONFIG_RTC_DEBUG is not set |
| | | +CONFIG_RTC_NVMEM=y |
| | | + |
| | | +# |
| | | +# RTC interfaces |
| | |
| | | +# CONFIG_RTC_DRV_RS5C372 is not set |
| | | +# CONFIG_RTC_DRV_ISL1208 is not set |
| | | +# CONFIG_RTC_DRV_ISL12022 is not set |
| | | +# CONFIG_RTC_DRV_ISL12026 is not set |
| | | +# CONFIG_RTC_DRV_X1205 is not set |
| | | +# CONFIG_RTC_DRV_PCF8523 is not set |
| | | +# CONFIG_RTC_DRV_PCF85063 is not set |
| | | +# CONFIG_RTC_DRV_PCF85363 is not set |
| | | +# CONFIG_RTC_DRV_PCF8563 is not set |
| | | +# CONFIG_RTC_DRV_PCF8583 is not set |
| | | +# CONFIG_RTC_DRV_M41T80 is not set |
| | |
| | | +# |
| | | +CONFIG_RTC_DRV_AT91RM9200=y |
| | | +# CONFIG_RTC_DRV_AT91SAM9 is not set |
| | | +# CONFIG_RTC_DRV_FTRTC010 is not set |
| | | +# CONFIG_RTC_DRV_SNVS is not set |
| | | +# CONFIG_RTC_DRV_R7301 is not set |
| | | + |
| | | +# |
| | | +# HID Sensor RTC drivers |
| | |
| | | +# |
| | | +CONFIG_DMA_ENGINE=y |
| | | +CONFIG_DMA_OF=y |
| | | +# CONFIG_ALTERA_MSGDMA is not set |
| | | +CONFIG_AT_HDMAC=y |
| | | +CONFIG_AT_XDMAC=y |
| | | +# CONFIG_DW_AXI_DMAC is not set |
| | | +# CONFIG_FSL_EDMA is not set |
| | | +# CONFIG_INTEL_IDMA64 is not set |
| | | +# CONFIG_NBPFAXI_DMA is not set |
| | |
| | | +# |
| | | +# DMABUF options |
| | | +# |
| | | +# CONFIG_SYNC_FILE is not set |
| | | +CONFIG_SYNC_FILE=y |
| | | +# CONFIG_SW_SYNC is not set |
| | | +# CONFIG_AUXDISPLAY is not set |
| | | +# CONFIG_UIO is not set |
| | | +# CONFIG_VIRT_DRIVERS is not set |
| | | + |
| | | +# |
| | | +# Virtio drivers |
| | | +# |
| | | +CONFIG_VIRTIO_MENU=y |
| | | +# CONFIG_VIRTIO_MMIO is not set |
| | | + |
| | | +# |
| | |
| | | +# CONFIG_PRISM2_USB is not set |
| | | +# CONFIG_COMEDI is not set |
| | | +# CONFIG_RTLLIB is not set |
| | | +# CONFIG_RTL8723BS is not set |
| | | +# CONFIG_R8712U is not set |
| | | +# CONFIG_R8188EU is not set |
| | | +# CONFIG_VT6656 is not set |
| | |
| | | +# |
| | | +# Accelerometers |
| | | +# |
| | | +# CONFIG_ADIS16201 is not set |
| | | +# CONFIG_ADIS16203 is not set |
| | | +# CONFIG_ADIS16209 is not set |
| | | +# CONFIG_ADIS16240 is not set |
| | | +# CONFIG_SCA3000 is not set |
| | | + |
| | | +# |
| | | +# Analog to digital converters |
| | |
| | | +# 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 |
| | | + |
| | | +# |
| | | +# 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 |
| | | +# |
| | | + |
| | | +# |
| | | +# Speakup console speech |
| | |
| | | +# CONFIG_STAGING_BOARD is not set |
| | | +# CONFIG_LTE_GDM724X is not set |
| | | +# CONFIG_MTD_SPINAND_MT29F is not set |
| | | +# CONFIG_LNET is not set |
| | | +# CONFIG_GS_FPGABOOT is not set |
| | | +# CONFIG_UNISYSSPAR is not set |
| | | +# CONFIG_COMMON_CLK_XLNX_CLKWZRD is not set |
| | | +# CONFIG_FB_TFT is not set |
| | | +CONFIG_WLAN_VENDOR_MCHP=y |
| | | +# CONFIG_WILC_SDIO is not set |
| | | +# CONFIG_WILC_SPI is not set |
| | | +# CONFIG_MOST is not set |
| | | +# CONFIG_KS7010 is not set |
| | | +# CONFIG_GREYBUS is not set |
| | | +# CONFIG_PI433 is not set |
| | | +# CONFIG_MTK_MMC is not set |
| | | + |
| | | +# |
| | | +# Gasket devices |
| | | +# |
| | | +# CONFIG_XIL_AXIS_FIFO is not set |
| | | +# CONFIG_EROFS_FS is not set |
| | | +# CONFIG_GOLDFISH is not set |
| | | +# CONFIG_CHROME_PLATFORMS is not set |
| | | +# CONFIG_MELLANOX_PLATFORM is not set |
| | | +CONFIG_CLKDEV_LOOKUP=y |
| | | +CONFIG_HAVE_CLK_PREPARE=y |
| | | +CONFIG_COMMON_CLK=y |
| | |
| | | +# |
| | | +# Common Clock Framework |
| | | +# |
| | | +# CONFIG_CLK_HSDK is not set |
| | | +# CONFIG_COMMON_CLK_MAX9485 is not set |
| | | +# CONFIG_COMMON_CLK_SI5351 is not set |
| | | +# CONFIG_COMMON_CLK_SI514 is not set |
| | | +# CONFIG_COMMON_CLK_SI544 is not set |
| | | +# CONFIG_COMMON_CLK_SI570 is not set |
| | | +# CONFIG_COMMON_CLK_CDCE706 is not set |
| | | +# CONFIG_COMMON_CLK_CDCE925 is not set |
| | | +# CONFIG_COMMON_CLK_CS2000_CP is not set |
| | | +# CONFIG_CLK_QORIQ is not set |
| | | +# CONFIG_COMMON_CLK_NXP is not set |
| | | +# CONFIG_COMMON_CLK_PWM is not set |
| | | +# CONFIG_COMMON_CLK_PXA is not set |
| | | +# CONFIG_COMMON_CLK_PIC32 is not set |
| | | + |
| | | +# |
| | | +# Hardware Spinlock drivers |
| | | +# |
| | | +# CONFIG_COMMON_CLK_VC5 is not set |
| | | +# CONFIG_HWSPINLOCK is not set |
| | | + |
| | | +# |
| | | +# Clock Source drivers |
| | | +# |
| | | +CONFIG_CLKSRC_OF=y |
| | | +CONFIG_CLKSRC_PROBE=y |
| | | +CONFIG_TIMER_OF=y |
| | | +CONFIG_TIMER_PROBE=y |
| | | +# CONFIG_ARM_TIMER_SP804 is not set |
| | | +CONFIG_ATMEL_PIT=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_MAILBOX is not set |
| | | +# CONFIG_IOMMU_SUPPORT is not set |
| | | + |
| | | +# |
| | | +# Remoteproc drivers |
| | | +# |
| | | +# CONFIG_STE_MODEM_RPROC is not set |
| | | +# CONFIG_REMOTEPROC is not set |
| | | + |
| | | +# |
| | | +# Rpmsg drivers |
| | | +# |
| | | +# CONFIG_RPMSG_VIRTIO is not set |
| | | +# CONFIG_SOUNDWIRE is not set |
| | | + |
| | | +# |
| | | +# SOC (System On Chip) specific Drivers |
| | | +# |
| | | + |
| | | +# |
| | | +# Amlogic SoC drivers |
| | | +# |
| | | +CONFIG_AT91_SOC_ID=y |
| | | + |
| | |
| | | +# Broadcom SoC drivers |
| | | +# |
| | | +# CONFIG_SOC_BRCMSTB is not set |
| | | +# CONFIG_SUNXI_SRAM is not set |
| | | + |
| | | +# |
| | | +# NXP/Freescale QorIQ SoC drivers |
| | | +# |
| | | + |
| | | +# |
| | | +# i.MX SoC drivers |
| | | +# |
| | | + |
| | | +# |
| | | +# Qualcomm SoC drivers |
| | | +# |
| | | +# CONFIG_SOC_TI is not set |
| | | + |
| | | +# |
| | | +# Xilinx SoC drivers |
| | | +# |
| | | +# CONFIG_XILINX_VCU is not set |
| | | +# CONFIG_PM_DEVFREQ is not set |
| | | +# CONFIG_EXTCON is not set |
| | | +CONFIG_MEMORY=y |
| | |
| | | +CONFIG_IIO=y |
| | | +CONFIG_IIO_BUFFER=y |
| | | +# CONFIG_IIO_BUFFER_CB is not set |
| | | +# CONFIG_IIO_BUFFER_HW_CONSUMER is not set |
| | | +CONFIG_IIO_KFIFO_BUF=y |
| | | +CONFIG_IIO_TRIGGERED_BUFFER=y |
| | | +# CONFIG_IIO_CONFIGFS is not set |
| | |
| | | +# |
| | | +# Accelerometers |
| | | +# |
| | | +# CONFIG_ADIS16201 is not set |
| | | +# CONFIG_ADIS16209 is not set |
| | | +# CONFIG_ADXL345_I2C is not set |
| | | +# CONFIG_ADXL345_SPI is not set |
| | | +# CONFIG_BMA180 is not set |
| | | +# CONFIG_BMA220 is not set |
| | | +# CONFIG_BMC150_ACCEL is not set |
| | | +# CONFIG_DA280 is not set |
| | | +# CONFIG_DA311 is not set |
| | | +# CONFIG_DMARD06 is not set |
| | | +# CONFIG_DMARD09 is not set |
| | | +# CONFIG_DMARD10 is not set |
| | | +# CONFIG_IIO_CROS_EC_ACCEL_LEGACY is not set |
| | | +# CONFIG_IIO_ST_ACCEL_3AXIS is not set |
| | | +# CONFIG_KXSD9 is not set |
| | | +# CONFIG_KXCJK1013 is not set |
| | |
| | | +# CONFIG_MMA9553 is not set |
| | | +# CONFIG_MXC4005 is not set |
| | | +# CONFIG_MXC6255 is not set |
| | | +# CONFIG_SCA3000 is not set |
| | | +# CONFIG_STK8312 is not set |
| | | +# CONFIG_STK8BA50 is not set |
| | | + |
| | |
| | | +# CONFIG_AD7291 is not set |
| | | +# CONFIG_AD7298 is not set |
| | | +# CONFIG_AD7476 is not set |
| | | +# CONFIG_AD7766 is not set |
| | | +# CONFIG_AD7791 is not set |
| | | +# CONFIG_AD7793 is not set |
| | | +# CONFIG_AD7887 is not set |
| | |
| | | +CONFIG_AT91_ADC=y |
| | | +CONFIG_AT91_SAMA5D2_ADC=y |
| | | +# CONFIG_CC10001_ADC is not set |
| | | +# CONFIG_ENVELOPE_DETECTOR is not set |
| | | +# CONFIG_HI8435 is not set |
| | | +# CONFIG_HX711 is not set |
| | | +# CONFIG_INA2XX_ADC is not set |
| | | +# CONFIG_LTC2471 is not set |
| | | +# CONFIG_LTC2485 is not set |
| | | +# CONFIG_LTC2497 is not set |
| | | +# CONFIG_MAX1027 is not set |
| | | +# CONFIG_MAX11100 is not set |
| | | +# CONFIG_MAX1118 is not set |
| | | +# CONFIG_MAX1363 is not set |
| | | +# CONFIG_MAX9611 is not set |
| | | +# CONFIG_MCP320X is not set |
| | | +# CONFIG_MCP3422 is not set |
| | | +# CONFIG_NAU7802 is not set |
| | | +# CONFIG_SD_ADC_MODULATOR is not set |
| | | +# CONFIG_TI_ADC081C is not set |
| | | +# CONFIG_TI_ADC0832 is not set |
| | | +# CONFIG_TI_ADC084S021 is not set |
| | | +# CONFIG_TI_ADC12138 is not set |
| | | +# CONFIG_TI_ADC108S102 is not set |
| | | +# CONFIG_TI_ADC128S052 is not set |
| | | +# CONFIG_TI_ADC161S626 is not set |
| | | +# CONFIG_TI_ADS1015 is not set |
| | | +# CONFIG_TI_ADS7950 is not set |
| | | +# CONFIG_TI_ADS8688 is not set |
| | | +# CONFIG_TI_TLC4541 is not set |
| | | +# CONFIG_VF610_ADC is not set |
| | | + |
| | | +# |
| | | +# Analog Front Ends |
| | | +# |
| | | +# CONFIG_IIO_RESCALE is not set |
| | | + |
| | | +# |
| | | +# Amplifiers |
| | |
| | | +# Chemical Sensors |
| | | +# |
| | | +# CONFIG_ATLAS_PH_SENSOR is not set |
| | | +# CONFIG_BME680 is not set |
| | | +# CONFIG_CCS811 is not set |
| | | +# CONFIG_IAQCORE is not set |
| | | +# CONFIG_VZ89X is not set |
| | | + |
| | |
| | | +# SSP Sensor Common |
| | | +# |
| | | +# CONFIG_IIO_SSP_SENSORHUB is not set |
| | | + |
| | | +# |
| | | +# Counters |
| | | +# |
| | | + |
| | | +# |
| | | +# Digital to analog converters |
| | |
| | | +# CONFIG_AD5593R is not set |
| | | +# CONFIG_AD5504 is not set |
| | | +# CONFIG_AD5624R_SPI is not set |
| | | +# CONFIG_AD5686 is not set |
| | | +# CONFIG_LTC2632 is not set |
| | | +# CONFIG_AD5686_SPI is not set |
| | | +# CONFIG_AD5696_I2C is not set |
| | | +# CONFIG_AD5755 is not set |
| | | +# CONFIG_AD5758 is not set |
| | | +# CONFIG_AD5761 is not set |
| | | +# CONFIG_AD5764 is not set |
| | | +# CONFIG_AD5791 is not set |
| | | +# CONFIG_AD7303 is not set |
| | | +# CONFIG_AD8801 is not set |
| | | +# CONFIG_DPOT_DAC is not set |
| | | +# CONFIG_DS4424 is not set |
| | | +# CONFIG_M62332 is not set |
| | | +# CONFIG_MAX517 is not set |
| | | +# CONFIG_MAX5821 is not set |
| | | +# CONFIG_MCP4725 is not set |
| | | +# CONFIG_MCP4922 is not set |
| | | +# CONFIG_TI_DAC082S085 is not set |
| | | +# CONFIG_TI_DAC5571 is not set |
| | | +# CONFIG_VF610_DAC is not set |
| | | + |
| | | +# |
| | |
| | | +# CONFIG_ADIS16260 is not set |
| | | +# CONFIG_ADXRS450 is not set |
| | | +# CONFIG_BMG160 is not set |
| | | +# CONFIG_MPU3050_I2C is not set |
| | | +# CONFIG_IIO_ST_GYRO_3AXIS is not set |
| | | +# CONFIG_ITG3200 is not set |
| | | + |
| | |
| | | +# CONFIG_AFE4403 is not set |
| | | +# CONFIG_AFE4404 is not set |
| | | +# CONFIG_MAX30100 is not set |
| | | +# CONFIG_MAX30102 is not set |
| | | + |
| | | +# |
| | | +# Humidity sensors |
| | |
| | | +# CONFIG_AM2315 is not set |
| | | +# CONFIG_DHT11 is not set |
| | | +# CONFIG_HDC100X is not set |
| | | +# CONFIG_HTS221 is not set |
| | | +# CONFIG_HTU21 is not set |
| | | +# CONFIG_SI7005 is not set |
| | | +# CONFIG_SI7020 is not set |
| | |
| | | +# CONFIG_KMX61 is not set |
| | | +# CONFIG_INV_MPU6050_I2C is not set |
| | | +# CONFIG_INV_MPU6050_SPI is not set |
| | | +# CONFIG_IIO_ST_LSM6DSX is not set |
| | | + |
| | | +# |
| | | +# Light sensors |
| | |
| | | +# CONFIG_CM32181 is not set |
| | | +# CONFIG_CM3232 is not set |
| | | +# CONFIG_CM3323 is not set |
| | | +# CONFIG_CM3605 is not set |
| | | +# CONFIG_CM36651 is not set |
| | | +# CONFIG_GP2AP020A00F is not set |
| | | +# CONFIG_SENSORS_ISL29018 is not set |
| | | +# CONFIG_SENSORS_ISL29028 is not set |
| | | +# CONFIG_ISL29125 is not set |
| | | +# CONFIG_JSA1212 is not set |
| | | +# CONFIG_RPR0521 is not set |
| | | +# CONFIG_LTR501 is not set |
| | | +# CONFIG_LV0104CS is not set |
| | | +# CONFIG_MAX44000 is not set |
| | | +# CONFIG_OPT3001 is not set |
| | | +# CONFIG_PA12203001 is not set |
| | | +# CONFIG_SI1133 is not set |
| | | +# CONFIG_SI1145 is not set |
| | | +# CONFIG_STK3310 is not set |
| | | +# CONFIG_ST_UVIS25 is not set |
| | | +# CONFIG_TCS3414 is not set |
| | | +# CONFIG_TCS3472 is not set |
| | | +# CONFIG_SENSORS_TSL2563 is not set |
| | | +# CONFIG_TSL2583 is not set |
| | | +# CONFIG_TSL2772 is not set |
| | | +# CONFIG_TSL4531 is not set |
| | | +# CONFIG_US5182D is not set |
| | | +# CONFIG_VCNL4000 is not set |
| | | +# CONFIG_VEML6070 is not set |
| | | +# CONFIG_VL6180 is not set |
| | | +# CONFIG_ZOPT2201 is not set |
| | | + |
| | | +# |
| | | +# Magnetometer sensors |
| | |
| | | +# CONFIG_SENSORS_HMC5843_SPI is not set |
| | | + |
| | | +# |
| | | +# Multiplexers |
| | | +# |
| | | +# CONFIG_IIO_MUX is not set |
| | | + |
| | | +# |
| | | +# Inclinometer sensors |
| | | +# |
| | | + |
| | |
| | | +# |
| | | +# Digital potentiometers |
| | | +# |
| | | +# CONFIG_AD5272 is not set |
| | | +# CONFIG_DS1803 is not set |
| | | +# CONFIG_MAX5481 is not set |
| | | +# CONFIG_MAX5487 is not set |
| | | +# CONFIG_MCP4018 is not set |
| | | +# CONFIG_MCP4131 is not set |
| | | +# CONFIG_MCP4531 is not set |
| | | +# CONFIG_TPL0102 is not set |
| | | + |
| | | +# |
| | | +# Digital potentiostats |
| | | +# |
| | | +# CONFIG_LMP91000 is not set |
| | | + |
| | | +# |
| | | +# Pressure sensors |
| | | +# |
| | | +# CONFIG_ABP060MG is not set |
| | | +# CONFIG_BMP280 is not set |
| | | +# CONFIG_HP03 is not set |
| | | +# CONFIG_MPL115_I2C is not set |
| | |
| | | +# CONFIG_AS3935 is not set |
| | | + |
| | | +# |
| | | +# Proximity sensors |
| | | +# Proximity and distance sensors |
| | | +# |
| | | +# CONFIG_ISL29501 is not set |
| | | +# CONFIG_LIDAR_LITE_V2 is not set |
| | | +# CONFIG_RFD77402 is not set |
| | | +# CONFIG_SRF04 is not set |
| | | +# CONFIG_SX9500 is not set |
| | | +# CONFIG_SRF08 is not set |
| | | + |
| | | +# |
| | | +# Resolver to digital converters |
| | | +# |
| | | +# CONFIG_AD2S1200 is not set |
| | | + |
| | | +# |
| | | +# Temperature sensors |
| | | +# |
| | | +# CONFIG_MAXIM_THERMOCOUPLE is not set |
| | | +# CONFIG_MLX90614 is not set |
| | | +# CONFIG_MLX90632 is not set |
| | | +# CONFIG_TMP006 is not set |
| | | +# CONFIG_TMP007 is not set |
| | | +# CONFIG_TSYS01 is not set |
| | | +# CONFIG_TSYS02D is not set |
| | | +CONFIG_PWM=y |
| | |
| | | +CONFIG_PWM_ATMEL_TCB=y |
| | | +# CONFIG_PWM_FSL_FTM is not set |
| | | +# CONFIG_PWM_PCA9685 is not set |
| | | + |
| | | +# |
| | | +# IRQ chip support |
| | | +# |
| | | +CONFIG_IRQCHIP=y |
| | | +CONFIG_ARM_GIC_MAX_NR=1 |
| | | +CONFIG_ATMEL_AIC5_IRQ=y |
| | | +# CONFIG_IPACK_BUS is not set |
| | | +CONFIG_RESET_CONTROLLER=y |
| | | +# CONFIG_RESET_ATH79 is not set |
| | | +# CONFIG_RESET_BERLIN is not set |
| | | +# CONFIG_RESET_LPC18XX is not set |
| | | +# CONFIG_RESET_MESON is not set |
| | | +# CONFIG_RESET_PISTACHIO is not set |
| | | +# CONFIG_RESET_SOCFPGA is not set |
| | | +# CONFIG_RESET_STM32 is not set |
| | | +# CONFIG_RESET_SUNXI is not set |
| | | +# CONFIG_TI_SYSCON_RESET is not set |
| | | +# CONFIG_RESET_ZYNQ is not set |
| | | +# CONFIG_RESET_TI_SYSCON is not set |
| | | +# CONFIG_FMC is not set |
| | | + |
| | | +# |
| | | +# PHY Subsystem |
| | | +# |
| | | +# CONFIG_GENERIC_PHY is not set |
| | | +# CONFIG_BCM_KONA_USB2_PHY is not set |
| | | +# CONFIG_PHY_PXA_28NM_HSIC is not set |
| | | +# CONFIG_PHY_PXA_28NM_USB2 is not set |
| | | +# CONFIG_BCM_KONA_USB2_PHY is not set |
| | | +# CONFIG_PHY_CPCAP_USB is not set |
| | | +# CONFIG_PHY_MAPPHONE_MDM6600 is not set |
| | | +# CONFIG_POWERCAP is not set |
| | | +# CONFIG_MCB is not set |
| | | + |
| | | +# |
| | | +# Performance monitor support |
| | | +# |
| | | +# CONFIG_RAS is not set |
| | | + |
| | | +# |
| | | +# Android |
| | | +# |
| | | +# CONFIG_ANDROID is not set |
| | | +# CONFIG_DAX is not set |
| | | +CONFIG_NVMEM=y |
| | | + |
| | | +# |
| | | +# HW tracing support |
| | | +# |
| | | +# CONFIG_STM is not set |
| | | +# CONFIG_INTEL_TH is not set |
| | | + |
| | | +# |
| | | +# FPGA Configuration Support |
| | | +# |
| | | +# CONFIG_FPGA is not set |
| | | + |
| | | +# |
| | | +# Firmware Drivers |
| | | +# |
| | | +# CONFIG_FIRMWARE_MEMMAP is not set |
| | | +# CONFIG_FW_CFG_SYSFS is not set |
| | | +CONFIG_HAVE_ARM_SMCCC=y |
| | | +# CONFIG_FSI is not set |
| | | +# CONFIG_TEE is not set |
| | | +# CONFIG_SIOX is not set |
| | | +# CONFIG_SLIMBUS is not set |
| | | + |
| | | +# |
| | | +# File systems |
| | | +# |
| | | +CONFIG_DCACHE_WORD_ACCESS=y |
| | | +CONFIG_FS_IOMAP=y |
| | | +# CONFIG_EXT2_FS is not set |
| | | +CONFIG_EXT3_FS=y |
| | | +# CONFIG_EXT3_FS_POSIX_ACL is not set |
| | |
| | | +# CONFIG_BTRFS_FS is not set |
| | | +# CONFIG_NILFS2_FS is not set |
| | | +# CONFIG_F2FS_FS is not set |
| | | +# CONFIG_FS_POSIX_ACL is not set |
| | | +CONFIG_EXPORTFS=y |
| | | +# CONFIG_EXPORTFS_BLOCK_OPS is not set |
| | | +CONFIG_FILE_LOCKING=y |
| | |
| | | +CONFIG_INOTIFY_USER=y |
| | | +CONFIG_FANOTIFY=y |
| | | +# CONFIG_QUOTA is not set |
| | | +# CONFIG_QUOTACTL is not set |
| | | +# CONFIG_AUTOFS4_FS is not set |
| | | +# CONFIG_AUTOFS_FS is not set |
| | | +# CONFIG_FUSE_FS is not set |
| | | +# CONFIG_OVERLAY_FS is not set |
| | | + |
| | |
| | | +CONFIG_TMPFS=y |
| | | +# CONFIG_TMPFS_POSIX_ACL is not set |
| | | +# CONFIG_TMPFS_XATTR is not set |
| | | +# CONFIG_HUGETLB_PAGE is not set |
| | | +CONFIG_MEMFD_CREATE=y |
| | | +CONFIG_CONFIGFS_FS=y |
| | | +CONFIG_MISC_FILESYSTEMS=y |
| | | +# CONFIG_ORANGEFS_FS is not set |
| | |
| | | +# CONFIG_JFFS2_FS_XATTR is not set |
| | | +# CONFIG_JFFS2_COMPRESSION_OPTIONS is not set |
| | | +CONFIG_JFFS2_ZLIB=y |
| | | +# CONFIG_JFFS2_LZO is not set |
| | | +CONFIG_JFFS2_RTIME=y |
| | | +# CONFIG_JFFS2_RUBIN is not set |
| | | +CONFIG_UBIFS_FS=y |
| | | +CONFIG_UBIFS_FS_ADVANCED_COMPR=y |
| | | +CONFIG_UBIFS_FS_LZO=y |
| | | +CONFIG_UBIFS_FS_ZLIB=y |
| | | +# CONFIG_UBIFS_ATIME_SUPPORT is not set |
| | | +# CONFIG_LOGFS is not set |
| | | +CONFIG_UBIFS_FS_XATTR=y |
| | | +# CONFIG_UBIFS_FS_ENCRYPTION is not set |
| | | +CONFIG_UBIFS_FS_SECURITY=y |
| | | +# CONFIG_CRAMFS is not set |
| | | +# CONFIG_SQUASHFS is not set |
| | | +# CONFIG_VXFS_FS is not set |
| | |
| | | +# CONFIG_SUNRPC_DEBUG is not set |
| | | +# CONFIG_CEPH_FS is not set |
| | | +# CONFIG_CIFS is not set |
| | | +# CONFIG_NCP_FS is not set |
| | | +# CONFIG_CODA_FS is not set |
| | | +# CONFIG_AFS_FS is not set |
| | | +CONFIG_NLS=y |
| | |
| | | +# CONFIG_DLM is not set |
| | | + |
| | | +# |
| | | +# Kernel hacking |
| | | +# |
| | | + |
| | | +# |
| | | +# printk and dmesg options |
| | | +# |
| | | +# CONFIG_PRINTK_TIME is not set |
| | | +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 is not set |
| | | +CONFIG_ENABLE_WARN_DEPRECATED=y |
| | | +CONFIG_ENABLE_MUST_CHECK=y |
| | | +CONFIG_FRAME_WARN=1024 |
| | | +CONFIG_STRIP_ASM_SYMS=y |
| | | +# CONFIG_READABLE_ASM is not set |
| | | +# CONFIG_UNUSED_SYMBOLS is not set |
| | | +# CONFIG_PAGE_OWNER is not set |
| | | +CONFIG_DEBUG_FS=y |
| | | +# CONFIG_HEADERS_CHECK is not set |
| | | +# CONFIG_DEBUG_SECTION_MISMATCH is not set |
| | | +CONFIG_SECTION_MISMATCH_WARN_ONLY=y |
| | | +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set |
| | | +# CONFIG_MAGIC_SYSRQ is not set |
| | | +CONFIG_DEBUG_KERNEL=y |
| | | + |
| | | +# |
| | | +# Memory Debugging |
| | | +# |
| | | +# CONFIG_PAGE_EXTENSION is not set |
| | | +# CONFIG_DEBUG_PAGEALLOC is not set |
| | | +# CONFIG_PAGE_POISONING is not set |
| | | +# CONFIG_DEBUG_OBJECTS is not set |
| | | +# CONFIG_DEBUG_SLAB 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=y |
| | | +# CONFIG_DEBUG_SHIRQ is not set |
| | | + |
| | | +# |
| | | +# Debug Lockups and Hangs |
| | | +# |
| | | +# CONFIG_LOCKUP_DETECTOR is not set |
| | | +# CONFIG_DETECT_HUNG_TASK is not set |
| | | +# CONFIG_WQ_WATCHDOG is not set |
| | | +# CONFIG_PANIC_ON_OOPS is not set |
| | | +CONFIG_PANIC_ON_OOPS_VALUE=0 |
| | | +CONFIG_PANIC_TIMEOUT=0 |
| | | +# CONFIG_SCHED_DEBUG is not set |
| | | +# CONFIG_SCHED_INFO is not set |
| | | +# CONFIG_SCHEDSTATS is not set |
| | | +# CONFIG_SCHED_STACK_END_CHECK is not set |
| | | +# CONFIG_DEBUG_TIMEKEEPING is not set |
| | | +# CONFIG_TIMER_STATS is not set |
| | | + |
| | | +# |
| | | +# 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 is not set |
| | | +# CONFIG_DEBUG_KOBJECT is not set |
| | | +CONFIG_DEBUG_BUGVERBOSE=y |
| | | +# 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_PROVE_RCU is not set |
| | | +# CONFIG_SPARSE_RCU_POINTER is not set |
| | | +# CONFIG_TORTURE_TEST is not set |
| | | +# CONFIG_RCU_PERF_TEST is not set |
| | | +# CONFIG_RCU_TORTURE_TEST is not set |
| | | +# CONFIG_RCU_TRACE is not set |
| | | +# CONFIG_RCU_EQS_DEBUG is not set |
| | | +# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set |
| | | +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
| | | +# CONFIG_NOTIFIER_ERROR_INJECTION is not set |
| | | +# CONFIG_FAULT_INJECTION is not set |
| | | +# CONFIG_LATENCYTOP is not set |
| | | +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_TRACING_SUPPORT=y |
| | | +# CONFIG_FTRACE 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_HEXDUMP is not set |
| | | +# CONFIG_TEST_STRING_HELPERS is not set |
| | | +# CONFIG_TEST_KSTRTOX is not set |
| | | +# CONFIG_TEST_PRINTF is not set |
| | | +# CONFIG_TEST_BITMAP is not set |
| | | +# CONFIG_TEST_UUID is not set |
| | | +# CONFIG_TEST_RHASHTABLE is not set |
| | | +# CONFIG_TEST_HASH 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_MEMTEST is not set |
| | | +# CONFIG_TEST_STATIC_KEYS is not set |
| | | +# CONFIG_SAMPLES is not set |
| | | +CONFIG_HAVE_ARCH_KGDB=y |
| | | +# CONFIG_KGDB is not set |
| | | +# CONFIG_ARCH_WANTS_UBSAN_NO_NULL is not set |
| | | +# CONFIG_UBSAN is not set |
| | | +CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y |
| | | +# CONFIG_STRICT_DEVMEM is not set |
| | | +# CONFIG_ARM_PTDUMP 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_8250 is not set |
| | | +CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" |
| | | +# CONFIG_PID_IN_CONTEXTIDR is not set |
| | | +# CONFIG_DEBUG_SET_MODULE_RONX is not set |
| | | +# CONFIG_CORESIGHT is not set |
| | | + |
| | | +# |
| | | +# Security options |
| | | +# |
| | | +CONFIG_KEYS=y |
| | |
| | | +# CONFIG_SECURITY is not set |
| | | +# CONFIG_SECURITYFS is not set |
| | | +CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y |
| | | +CONFIG_HAVE_ARCH_HARDENED_USERCOPY=y |
| | | +# CONFIG_HARDENED_USERCOPY is not set |
| | | +# CONFIG_FORTIFY_SOURCE is not set |
| | | +# CONFIG_STATIC_USERMODEHELPER is not set |
| | | +CONFIG_DEFAULT_SECURITY_DAC=y |
| | | +CONFIG_DEFAULT_SECURITY="" |
| | | +CONFIG_CRYPTO=y |
| | |
| | | +CONFIG_CRYPTO_RNG2=y |
| | | +CONFIG_CRYPTO_RNG_DEFAULT=y |
| | | +CONFIG_CRYPTO_AKCIPHER2=y |
| | | +CONFIG_CRYPTO_AKCIPHER=y |
| | | +CONFIG_CRYPTO_KPP2=y |
| | | +# CONFIG_CRYPTO_RSA is not set |
| | | +CONFIG_CRYPTO_KPP=y |
| | | +CONFIG_CRYPTO_ACOMP2=y |
| | | +CONFIG_CRYPTO_RSA=y |
| | | +# CONFIG_CRYPTO_DH is not set |
| | | +# CONFIG_CRYPTO_ECDH is not set |
| | | +CONFIG_CRYPTO_ECDH=y |
| | | +CONFIG_CRYPTO_MANAGER=y |
| | | +CONFIG_CRYPTO_MANAGER2=y |
| | | +# CONFIG_CRYPTO_USER is not set |
| | | +CONFIG_CRYPTO_USER=y |
| | | +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y |
| | | +CONFIG_CRYPTO_GF128MUL=y |
| | | +CONFIG_CRYPTO_NULL=y |
| | |
| | | +CONFIG_CRYPTO_CCM=y |
| | | +CONFIG_CRYPTO_GCM=y |
| | | +# CONFIG_CRYPTO_CHACHA20POLY1305 is not set |
| | | +# CONFIG_CRYPTO_AEGIS128 is not set |
| | | +# CONFIG_CRYPTO_AEGIS128L is not set |
| | | +# CONFIG_CRYPTO_AEGIS256 is not set |
| | | +# CONFIG_CRYPTO_MORUS640 is not set |
| | | +# CONFIG_CRYPTO_MORUS1280 is not set |
| | | +CONFIG_CRYPTO_SEQIV=y |
| | | +CONFIG_CRYPTO_ECHAINIV=m |
| | | +CONFIG_CRYPTO_ECHAINIV=y |
| | | + |
| | | +# |
| | | +# Block modes |
| | | +# |
| | | +CONFIG_CRYPTO_CBC=y |
| | | +# CONFIG_CRYPTO_CFB is not set |
| | | +CONFIG_CRYPTO_CTR=y |
| | | +# CONFIG_CRYPTO_CTS is not set |
| | | +CONFIG_CRYPTO_ECB=y |
| | | +# CONFIG_CRYPTO_LRW is not set |
| | | +# CONFIG_CRYPTO_PCBC is not set |
| | | +# CONFIG_CRYPTO_XTS is not set |
| | | +CONFIG_CRYPTO_XTS=y |
| | | +# CONFIG_CRYPTO_KEYWRAP is not set |
| | | + |
| | | +# |
| | | +# Hash modes |
| | | +# |
| | | +# CONFIG_CRYPTO_CMAC is not set |
| | | +CONFIG_CRYPTO_CMAC=y |
| | | +CONFIG_CRYPTO_HMAC=y |
| | | +# CONFIG_CRYPTO_XCBC is not set |
| | | +# CONFIG_CRYPTO_VMAC is not set |
| | |
| | | +CONFIG_CRYPTO_GHASH=y |
| | | +# CONFIG_CRYPTO_POLY1305 is not set |
| | | +# CONFIG_CRYPTO_MD4 is not set |
| | | +# CONFIG_CRYPTO_MD5 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_SHA256=y |
| | | +CONFIG_CRYPTO_SHA512=y |
| | | +# CONFIG_CRYPTO_SHA3 is not set |
| | | +# CONFIG_CRYPTO_SM3 is not set |
| | | +# CONFIG_CRYPTO_TGR192 is not set |
| | | +# CONFIG_CRYPTO_WP512 is not set |
| | | + |
| | |
| | | +# Ciphers |
| | | +# |
| | | +CONFIG_CRYPTO_AES=y |
| | | +# CONFIG_CRYPTO_AES_TI is not set |
| | | +# CONFIG_CRYPTO_ANUBIS is not set |
| | | +CONFIG_CRYPTO_ARC4=y |
| | | +# CONFIG_CRYPTO_BLOWFISH is not set |
| | |
| | | +# CONFIG_CRYPTO_CHACHA20 is not set |
| | | +# CONFIG_CRYPTO_SEED is not set |
| | | +# CONFIG_CRYPTO_SERPENT is not set |
| | | +# CONFIG_CRYPTO_SM4 is not set |
| | | +# CONFIG_CRYPTO_TEA is not set |
| | | +# CONFIG_CRYPTO_TWOFISH is not set |
| | | + |
| | |
| | | +# CONFIG_CRYPTO_842 is not set |
| | | +# CONFIG_CRYPTO_LZ4 is not set |
| | | +# CONFIG_CRYPTO_LZ4HC is not set |
| | | +# CONFIG_CRYPTO_ZSTD is not set |
| | | + |
| | | +# |
| | | +# Random Number Generation |
| | |
| | | +CONFIG_CRYPTO_USER_API_HASH=y |
| | | +CONFIG_CRYPTO_USER_API_SKCIPHER=y |
| | | +CONFIG_CRYPTO_USER_API_RNG=y |
| | | +# CONFIG_CRYPTO_USER_API_AEAD is not set |
| | | +CONFIG_CRYPTO_USER_API_AEAD=y |
| | | +CONFIG_CRYPTO_USER_API_AKCIPHER=y |
| | | +# CONFIG_CRYPTO_USER_API_KPP is not set |
| | | +CONFIG_CRYPTO_HASH_INFO=y |
| | | +CONFIG_CRYPTO_HW=y |
| | | +# CONFIG_CRYPTO_DEV_ATMEL_AUTHENC is not set |
| | | +CONFIG_CRYPTO_DEV_ATMEL_AUTHENC=y |
| | | +CONFIG_CRYPTO_DEV_ATMEL_AES=y |
| | | +CONFIG_CRYPTO_DEV_ATMEL_TDES=y |
| | | +CONFIG_CRYPTO_DEV_ATMEL_SHA=y |
| | | +# CONFIG_ASYMMETRIC_KEY_TYPE is not set |
| | | +CONFIG_CRYPTO_DEV_ATMEL_ECC=y |
| | | +CONFIG_CRYPTO_DEV_CCREE=y |
| | | +CONFIG_ASYMMETRIC_KEY_TYPE=y |
| | | +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y |
| | | +CONFIG_X509_CERTIFICATE_PARSER=y |
| | | +CONFIG_PKCS7_MESSAGE_PARSER=y |
| | | +# CONFIG_PKCS7_TEST_KEY is not set |
| | | +# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set |
| | | + |
| | | +# |
| | | +# Certificates for signature checking |
| | | +# |
| | | +# CONFIG_ARM_CRYPTO is not set |
| | | +# CONFIG_BINARY_PRINTF is not set |
| | | +CONFIG_SYSTEM_TRUSTED_KEYRING=y |
| | | +CONFIG_SYSTEM_TRUSTED_KEYS="" |
| | | +# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set |
| | | +# CONFIG_SECONDARY_TRUSTED_KEYRING is not set |
| | | +# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set |
| | | + |
| | | +# |
| | | +# Library routines |
| | |
| | | +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_CRC32_SLICEBY4 is not set |
| | | +# CONFIG_CRC32_SARWATE is not set |
| | | +# CONFIG_CRC32_BIT is not set |
| | | +# CONFIG_CRC64 is not set |
| | | +# CONFIG_CRC4 is not set |
| | | +# CONFIG_CRC7 is not set |
| | | +CONFIG_LIBCRC32C=y |
| | | +# CONFIG_CRC8 is not set |
| | | +# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set |
| | | +# CONFIG_RANDOM32_SELFTEST is not set |
| | | +CONFIG_ZLIB_INFLATE=y |
| | | +CONFIG_ZLIB_DEFLATE=y |
| | |
| | | +CONFIG_HAS_IOMEM=y |
| | | +CONFIG_HAS_IOPORT_MAP=y |
| | | +CONFIG_HAS_DMA=y |
| | | +CONFIG_NEED_DMA_MAP_STATE=y |
| | | +CONFIG_HAVE_GENERIC_DMA_COHERENT=y |
| | | +CONFIG_SGL_ALLOC=y |
| | | +CONFIG_DQL=y |
| | | +CONFIG_GLOB=y |
| | | +# CONFIG_GLOB_SELFTEST is not set |
| | | +CONFIG_NLATTR=y |
| | | +CONFIG_CLZ_TAB=y |
| | | +# CONFIG_CORDIC is not set |
| | | +# CONFIG_DDR is not set |
| | | +# CONFIG_IRQ_POLL is not set |
| | | +CONFIG_MPILIB=y |
| | | +CONFIG_LIBFDT=y |
| | | +CONFIG_OID_REGISTRY=y |
| | | +# CONFIG_SG_SPLIT is not set |
| | | +CONFIG_SG_POOL=y |
| | | +CONFIG_ARCH_HAS_SG_CHAIN=y |
| | | +CONFIG_SBITMAP=y |
| | | +# CONFIG_VIRTUALIZATION is not set |
| | | diff -Nuar linux-at91/drivers/net/wireless/ralink/rt2x00/rt2800usb.c linux-at91-sama5d4/drivers/net/wireless/ralink/rt2x00/rt2800usb.c |
| | | --- linux-at91/drivers/net/wireless/ralink/rt2x00/rt2800usb.c 2019-08-18 17:24:53.000000000 +0800 |
| | | +++ linux-at91-sama5d4/drivers/net/wireless/ralink/rt2x00/rt2800usb.c 2019-08-22 23:05:23.819524309 +0800 |
| | | @@ -123,7 +123,8 @@ |
| | | if (!test_bit(ENTRY_DATA_STATUS_PENDING, &entry->flags)) |
| | | return false; |
| | | |
| | | - tout = time_after(jiffies, entry->last_action + msecs_to_jiffies(100)); |
| | | + /* modify from 100 by guowenxue 2019.08.18 */ |
| | | + tout = time_after(jiffies, entry->last_action + msecs_to_jiffies(500)); |
| | | if (unlikely(tout)) |
| | | rt2x00_dbg(entry->queue->rt2x00dev, |
| | | "TX status timeout for entry %d in queue %d\n", |
| | | diff -Nuar linux-at91/drivers/net/wireless/ralink/rt2x00/rt2x00queue.h linux-at91-sama5d4/drivers/net/wireless/ralink/rt2x00/rt2x00queue.h |
| | | --- linux-at91/drivers/net/wireless/ralink/rt2x00/rt2x00queue.h 2019-08-18 17:24:53.000000000 +0800 |
| | | +++ linux-at91-sama5d4/drivers/net/wireless/ralink/rt2x00/rt2x00queue.h 2019-08-22 23:05:23.819524309 +0800 |
| | | @@ -632,7 +632,8 @@ |
| | | { |
| | | if (!test_bit(ENTRY_OWNER_DEVICE_DATA, &entry->flags)) |
| | | return false; |
| | | - return time_after(jiffies, entry->last_action + msecs_to_jiffies(100)); |
| | | + /*modify from by guowenxue 2019.08.18*/ |
| | | + return time_after(jiffies, entry->last_action + msecs_to_jiffies(500)); |
| | | +# CONFIG_STRING_SELFTEST is not set |
| | | + |
| | | +# |
| | | +# Kernel hacking |
| | | +# |
| | | + |
| | | +# |
| | | +# printk and dmesg options |
| | | +# |
| | | +# CONFIG_PRINTK_TIME is not set |
| | | +CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7 |
| | | +CONFIG_CONSOLE_LOGLEVEL_QUIET=4 |
| | | +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 is not set |
| | | +CONFIG_ENABLE_MUST_CHECK=y |
| | | +CONFIG_FRAME_WARN=1024 |
| | | +CONFIG_STRIP_ASM_SYMS=y |
| | | +# CONFIG_READABLE_ASM is not set |
| | | +# CONFIG_UNUSED_SYMBOLS is not set |
| | | +# CONFIG_PAGE_OWNER is not set |
| | | +CONFIG_DEBUG_FS=y |
| | | +# CONFIG_HEADERS_CHECK is not set |
| | | +# CONFIG_DEBUG_SECTION_MISMATCH is not set |
| | | +CONFIG_SECTION_MISMATCH_WARN_ONLY=y |
| | | +# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set |
| | | +# CONFIG_MAGIC_SYSRQ is not set |
| | | +CONFIG_DEBUG_KERNEL=y |
| | | + |
| | | +# |
| | | +# Memory Debugging |
| | | +# |
| | | +# CONFIG_PAGE_EXTENSION is not set |
| | | +# CONFIG_DEBUG_PAGEALLOC is not set |
| | | +# CONFIG_PAGE_POISONING is not set |
| | | +# CONFIG_DEBUG_RODATA_TEST is not set |
| | | +# CONFIG_DEBUG_OBJECTS is not set |
| | | +# CONFIG_DEBUG_SLAB 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_ARCH_HAS_DEBUG_VIRTUAL=y |
| | | +# CONFIG_DEBUG_VIRTUAL is not set |
| | | +CONFIG_DEBUG_MEMORY_INIT=y |
| | | +CONFIG_ARCH_HAS_KCOV=y |
| | | +CONFIG_CC_HAS_SANCOV_TRACE_PC=y |
| | | +# CONFIG_KCOV is not set |
| | | +# CONFIG_DEBUG_SHIRQ is not set |
| | | + |
| | | +# |
| | | +# Debug Lockups and Hangs |
| | | +# |
| | | +# CONFIG_SOFTLOCKUP_DETECTOR is not set |
| | | +# CONFIG_DETECT_HUNG_TASK is not set |
| | | +# CONFIG_WQ_WATCHDOG is not set |
| | | +# CONFIG_PANIC_ON_OOPS is not set |
| | | +CONFIG_PANIC_ON_OOPS_VALUE=0 |
| | | +CONFIG_PANIC_TIMEOUT=0 |
| | | +# CONFIG_SCHED_DEBUG is not set |
| | | +# CONFIG_SCHEDSTATS is not set |
| | | +# CONFIG_SCHED_STACK_END_CHECK is not set |
| | | +# CONFIG_DEBUG_TIMEKEEPING is not set |
| | | + |
| | | +# |
| | | +# Lock Debugging (spinlocks, mutexes, etc...) |
| | | +# |
| | | +CONFIG_LOCK_DEBUGGING_SUPPORT=y |
| | | +# CONFIG_PROVE_LOCKING is not set |
| | | +# CONFIG_LOCK_STAT is not set |
| | | +# 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_DEBUG_ATOMIC_SLEEP is not set |
| | | +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set |
| | | +# CONFIG_LOCK_TORTURE_TEST is not set |
| | | +# CONFIG_WW_MUTEX_SELFTEST is not set |
| | | +# CONFIG_STACKTRACE is not set |
| | | +# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set |
| | | +# CONFIG_DEBUG_KOBJECT is not set |
| | | +CONFIG_DEBUG_BUGVERBOSE=y |
| | | +# 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_RCU_PERF_TEST is not set |
| | | +# CONFIG_RCU_TORTURE_TEST is not set |
| | | +# CONFIG_RCU_TRACE is not set |
| | | +# CONFIG_RCU_EQS_DEBUG is not set |
| | | +# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set |
| | | +# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set |
| | | +# CONFIG_NOTIFIER_ERROR_INJECTION is not set |
| | | +# CONFIG_FAULT_INJECTION is not set |
| | | +# CONFIG_LATENCYTOP is not set |
| | | +CONFIG_HAVE_FUNCTION_TRACER=y |
| | | +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y |
| | | +CONFIG_HAVE_DYNAMIC_FTRACE=y |
| | | +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y |
| | | +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y |
| | | +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y |
| | | +CONFIG_HAVE_C_RECORDMCOUNT=y |
| | | +CONFIG_TRACING_SUPPORT=y |
| | | +# CONFIG_FTRACE is not set |
| | | +# CONFIG_DMA_API_DEBUG is not set |
| | | +CONFIG_RUNTIME_TESTING_MENU=y |
| | | +# CONFIG_LKDTM is not set |
| | | +# CONFIG_TEST_LIST_SORT is not set |
| | | +# CONFIG_TEST_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_HEXDUMP is not set |
| | | +# CONFIG_TEST_STRING_HELPERS is not set |
| | | +# CONFIG_TEST_KSTRTOX is not set |
| | | +# CONFIG_TEST_PRINTF is not set |
| | | +# CONFIG_TEST_BITMAP is not set |
| | | +# CONFIG_TEST_BITFIELD is not set |
| | | +# CONFIG_TEST_UUID is not set |
| | | +# CONFIG_TEST_OVERFLOW is not set |
| | | +# CONFIG_TEST_RHASHTABLE is not set |
| | | +# CONFIG_TEST_HASH is not set |
| | | +# CONFIG_TEST_IDA is not set |
| | | +# CONFIG_TEST_LKM is not set |
| | | +# CONFIG_TEST_USER_COPY is not set |
| | | +# CONFIG_TEST_BPF is not set |
| | | +# CONFIG_FIND_BIT_BENCHMARK is not set |
| | | +# CONFIG_TEST_FIRMWARE is not set |
| | | +# CONFIG_TEST_SYSCTL is not set |
| | | +# CONFIG_TEST_UDELAY is not set |
| | | +# CONFIG_TEST_STATIC_KEYS is not set |
| | | +# CONFIG_TEST_KMOD is not set |
| | | +# CONFIG_MEMTEST is not set |
| | | +# CONFIG_BUG_ON_DATA_CORRUPTION is not set |
| | | +# CONFIG_SAMPLES is not set |
| | | +CONFIG_HAVE_ARCH_KGDB=y |
| | | +# CONFIG_KGDB is not set |
| | | +# CONFIG_UBSAN is not set |
| | | +CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y |
| | | +# CONFIG_STRICT_DEVMEM is not set |
| | | +# CONFIG_ARM_PTDUMP_DEBUGFS is not set |
| | | +# CONFIG_DEBUG_WX 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_UNCOMPRESS_INCLUDE="debug/uncompress.h" |
| | | +# CONFIG_PID_IN_CONTEXTIDR is not set |
| | | +# CONFIG_CORESIGHT is not set |
| | | diff -Nuar linux-at91/crypto/af_alg.c linux-at91-sama5d4/crypto/af_alg.c |
| | | --- linux-at91/crypto/af_alg.c 2019-07-10 18:07:41.000000000 +0800 |
| | | +++ linux-at91-sama5d4/crypto/af_alg.c 2019-08-26 00:44:57.988610990 +0800 |
| | | @@ -207,13 +207,17 @@ |
| | | } |
| | | |
| | | /** |
| | | diff -Nuar linux-at91/drivers/net/wireless/ralink/rt2x00/rt2x00usb.h linux-at91-sama5d4/drivers/net/wireless/ralink/rt2x00/rt2x00usb.h |
| | | --- linux-at91/drivers/net/wireless/ralink/rt2x00/rt2x00usb.h 2019-08-18 17:24:53.000000000 +0800 |
| | | +++ linux-at91-sama5d4/drivers/net/wireless/ralink/rt2x00/rt2x00usb.h 2019-08-22 23:05:23.823524309 +0800 |
| | | @@ -38,7 +38,7 @@ |
| | | * a higher value is required. In that case we use the REGISTER_TIMEOUT_FIRMWARE |
| | | * and EEPROM_TIMEOUT. |
| | | */ |
| | | -#define REGISTER_TIMEOUT 100 |
| | | +#define REGISTER_TIMEOUT 300 /* modify from 100 by guowenxue 2019.08.18 */ |
| | | #define REGISTER_TIMEOUT_FIRMWARE 1000 |
| | | #define EEPROM_TIMEOUT 2000 |
| | | static int alg_setkey(struct sock *sk, char __user *ukey, |
| | | - unsigned int keylen) |
| | | + unsigned int keylen, |
| | | + int (*setkey)(void *private, const u8 *key, |
| | | + unsigned int keylen)) |
| | | { |
| | | struct alg_sock *ask = alg_sk(sk); |
| | | - const struct af_alg_type *type = ask->type; |
| | | u8 *key; |
| | | int err; |
| | | |
| | | + if (!setkey) |
| | | + return -ENOPROTOOPT; |
| | | + |
| | | key = sock_kmalloc(sk, keylen, GFP_KERNEL); |
| | | if (!key) |
| | | return -ENOMEM; |
| | | @@ -222,7 +226,7 @@ |
| | | if (copy_from_user(key, ukey, keylen)) |
| | | goto out; |
| | | |
| | | - err = type->setkey(ask->private, key, keylen); |
| | | + err = setkey(ask->private, key, keylen); |
| | | |
| | | out: |
| | | sock_kzfree_s(sk, key, keylen); |
| | | @@ -248,18 +252,23 @@ |
| | | if (level != SOL_ALG || !type) |
| | | goto unlock; |
| | | |
| | | + if (sock->state == SS_CONNECTED) |
| | | + goto unlock; |
| | | + |
| | | switch (optname) { |
| | | case ALG_SET_KEY: |
| | | - if (sock->state == SS_CONNECTED) |
| | | - goto unlock; |
| | | - if (!type->setkey) |
| | | - goto unlock; |
| | | - |
| | | - err = alg_setkey(sk, optval, optlen); |
| | | + err = alg_setkey(sk, optval, optlen, type->setkey); |
| | | + break; |
| | | + case ALG_SET_PUBKEY: |
| | | + err = alg_setkey(sk, optval, optlen, type->setpubkey); |
| | | + break; |
| | | + case ALG_SET_DH_PARAMETERS: |
| | | + err = alg_setkey(sk, optval, optlen, type->dhparams); |
| | | + break; |
| | | + case ALG_SET_ECDH_CURVE: |
| | | + err = alg_setkey(sk, optval, optlen, type->ecdhcurve); |
| | | break; |
| | | case ALG_SET_AEAD_AUTHSIZE: |
| | | - if (sock->state == SS_CONNECTED) |
| | | - goto unlock; |
| | | if (!type->setauthsize) |
| | | goto unlock; |
| | | err = type->setauthsize(ask->private, optlen); |
| | | @@ -834,7 +843,7 @@ |
| | | struct af_alg_tsgl *sgl; |
| | | struct af_alg_control con = {}; |
| | | long copied = 0; |
| | | - bool enc = 0; |
| | | + int op = 0; |
| | | bool init = 0; |
| | | int err = 0; |
| | | |
| | | @@ -845,11 +854,13 @@ |
| | | |
| | | init = 1; |
| | | switch (con.op) { |
| | | + case ALG_OP_VERIFY: |
| | | + case ALG_OP_SIGN: |
| | | case ALG_OP_ENCRYPT: |
| | | - enc = 1; |
| | | - break; |
| | | case ALG_OP_DECRYPT: |
| | | - enc = 0; |
| | | + case ALG_OP_KEYGEN: |
| | | + case ALG_OP_SSGEN: |
| | | + op = con.op; |
| | | break; |
| | | default: |
| | | return -EINVAL; |
| | | @@ -866,7 +877,7 @@ |
| | | } |
| | | |
| | | if (init) { |
| | | - ctx->enc = enc; |
| | | + ctx->op = op; |
| | | if (con.iv) |
| | | memcpy(ctx->iv, con.iv->iv, ivsize); |
| | | |
| | | diff -Nuar linux-at91/crypto/algif_aead.c linux-at91-sama5d4/crypto/algif_aead.c |
| | | --- linux-at91/crypto/algif_aead.c 2019-07-10 18:07:41.000000000 +0800 |
| | | +++ linux-at91-sama5d4/crypto/algif_aead.c 2019-08-26 00:44:57.988610990 +0800 |
| | | @@ -59,7 +59,7 @@ |
| | | * The minimum amount of memory needed for an AEAD cipher is |
| | | * the AAD and in case of decryption the tag. |
| | | */ |
| | | - return ctx->used >= ctx->aead_assoclen + (ctx->enc ? 0 : as); |
| | | + return ctx->used >= ctx->aead_assoclen + (ctx->op ? 0 : as); |
| | | } |
| | | |
| | | static int aead_sendmsg(struct socket *sock, struct msghdr *msg, size_t size) |
| | | @@ -75,6 +75,19 @@ |
| | | return af_alg_sendmsg(sock, msg, size, ivsize); |
| | | } |
| | | |
| | | +static inline int aead_cipher_op(struct af_alg_ctx *ctx, |
| | | + struct af_alg_async_req *areq) |
| | | +{ |
| | | + switch (ctx->op) { |
| | | + case ALG_OP_ENCRYPT: |
| | | + return crypto_aead_encrypt(&areq->cra_u.aead_req); |
| | | + case ALG_OP_DECRYPT: |
| | | + return crypto_aead_decrypt(&areq->cra_u.aead_req); |
| | | + default: |
| | | + return -EOPNOTSUPP; |
| | | + } |
| | | +} |
| | | + |
| | | static int crypto_aead_copy_sgl(struct crypto_skcipher *null_tfm, |
| | | struct scatterlist *src, |
| | | struct scatterlist *dst, unsigned int len) |
| | | @@ -142,7 +155,7 @@ |
| | | * buffer provides the tag which is consumed resulting in only the |
| | | * plaintext without a buffer for the tag returned to the caller. |
| | | */ |
| | | - if (ctx->enc) |
| | | + if (ctx->op) |
| | | outlen = used + as; |
| | | else |
| | | outlen = used - as; |
| | | @@ -216,7 +229,7 @@ |
| | | /* Use the RX SGL as source (and destination) for crypto op. */ |
| | | rsgl_src = areq->first_rsgl.sgl.sg; |
| | | |
| | | - if (ctx->enc) { |
| | | + if (ctx->op == ALG_OP_ENCRYPT) { |
| | | /* |
| | | * Encryption operation - The in-place cipher operation is |
| | | * achieved by the following operation: |
| | | @@ -232,7 +245,7 @@ |
| | | if (err) |
| | | goto free; |
| | | af_alg_pull_tsgl(sk, processed, NULL, 0); |
| | | - } else { |
| | | + } else if (ctx->op == ALG_OP_DECRYPT) { |
| | | /* |
| | | * Decryption operation - To achieve an in-place cipher |
| | | * operation, the following SGL structure is used: |
| | | @@ -297,8 +310,7 @@ |
| | | aead_request_set_callback(&areq->cra_u.aead_req, |
| | | CRYPTO_TFM_REQ_MAY_BACKLOG, |
| | | af_alg_async_cb, areq); |
| | | - err = ctx->enc ? crypto_aead_encrypt(&areq->cra_u.aead_req) : |
| | | - crypto_aead_decrypt(&areq->cra_u.aead_req); |
| | | + err = aead_cipher_op(ctx, areq); |
| | | |
| | | /* AIO operation in progress */ |
| | | if (err == -EINPROGRESS || err == -EBUSY) |
| | | @@ -310,10 +322,7 @@ |
| | | aead_request_set_callback(&areq->cra_u.aead_req, |
| | | CRYPTO_TFM_REQ_MAY_BACKLOG, |
| | | crypto_req_done, &ctx->wait); |
| | | - err = crypto_wait_req(ctx->enc ? |
| | | - crypto_aead_encrypt(&areq->cra_u.aead_req) : |
| | | - crypto_aead_decrypt(&areq->cra_u.aead_req), |
| | | - &ctx->wait); |
| | | + err = crypto_wait_req(aead_cipher_op(ctx, areq), &ctx->wait); |
| | | } |
| | | |
| | | |
| | | @@ -569,7 +578,7 @@ |
| | | atomic_set(&ctx->rcvused, 0); |
| | | ctx->more = 0; |
| | | ctx->merge = 0; |
| | | - ctx->enc = 0; |
| | | + ctx->op = 0; |
| | | ctx->aead_assoclen = 0; |
| | | crypto_init_wait(&ctx->wait); |
| | | |
| | | diff -Nuar linux-at91/crypto/algif_akcipher.c linux-at91-sama5d4/crypto/algif_akcipher.c |
| | | --- linux-at91/crypto/algif_akcipher.c 1970-01-01 08:00:00.000000000 +0800 |
| | | +++ linux-at91-sama5d4/crypto/algif_akcipher.c 2019-08-26 00:44:57.988610990 +0800 |
| | | @@ -0,0 +1,474 @@ |
| | | +/* |
| | | + * algif_akcipher: User-space interface for asymmetric cipher algorithms |
| | | + * |
| | | + * Copyright (C) 2018 - 2019, Stephan Mueller <smueller@chronox.de> |
| | | + * |
| | | + * This file provides the user-space API for asymmetric ciphers. |
| | | + * |
| | | + * This program is free software; you can redistribute it and/or modify it |
| | | + * under the terms of the GNU General Public License as published by the Free |
| | | + * Software Foundation; either version 2 of the License, or (at your option) |
| | | + * any later version. |
| | | + * |
| | | + * The following concept of the memory management is used: |
| | | + * |
| | | + * The kernel maintains two SGLs, the TX SGL and the RX SGL. The TX SGL is |
| | | + * filled by user space with the data submitted via sendpage/sendmsg. Filling |
| | | + * up the TX SGL does not cause a crypto operation -- the data will only be |
| | | + * tracked by the kernel. Upon receipt of one recvmsg call, the caller must |
| | | + * provide a buffer which is tracked with the RX SGL. |
| | | + * |
| | | + * During the processing of the recvmsg operation, the cipher request is |
| | | + * allocated and prepared. As part of the recvmsg operation, the processed |
| | | + * TX buffers are extracted from the TX SGL into a separate SGL. |
| | | + * |
| | | + * After the completion of the crypto operation, the RX SGL and the cipher |
| | | + * request is released. The extracted TX SGL parts are released together with |
| | | + * the RX SGL release. |
| | | + */ |
| | | + |
| | | +#include <crypto/akcipher.h> |
| | | +#include <crypto/if_alg.h> |
| | | +#include <crypto/scatterwalk.h> |
| | | +#include <linux/init.h> |
| | | +#include <linux/list.h> |
| | | +#include <linux/kernel.h> |
| | | +#include <linux/mm.h> |
| | | +#include <linux/module.h> |
| | | +#include <linux/net.h> |
| | | +#include <net/sock.h> |
| | | + |
| | | +struct akcipher_tfm { |
| | | + struct crypto_akcipher *akcipher; |
| | | + bool has_key; |
| | | +}; |
| | | + |
| | | +static int akcipher_sendmsg(struct socket *sock, struct msghdr *msg, |
| | | + size_t size) |
| | | +{ |
| | | + return af_alg_sendmsg(sock, msg, size, 0); |
| | | +} |
| | | + |
| | | +static inline int akcipher_cipher_op(struct af_alg_ctx *ctx, |
| | | + struct af_alg_async_req *areq) |
| | | +{ |
| | | + switch (ctx->op) { |
| | | + case ALG_OP_ENCRYPT: |
| | | + return crypto_akcipher_encrypt(&areq->cra_u.akcipher_req); |
| | | + case ALG_OP_DECRYPT: |
| | | + return crypto_akcipher_decrypt(&areq->cra_u.akcipher_req); |
| | | + case ALG_OP_SIGN: |
| | | + return crypto_akcipher_sign(&areq->cra_u.akcipher_req); |
| | | + case ALG_OP_VERIFY: |
| | | + return crypto_akcipher_verify(&areq->cra_u.akcipher_req); |
| | | + default: |
| | | + return -EOPNOTSUPP; |
| | | + } |
| | | +} |
| | | + |
| | | +static int _akcipher_recvmsg(struct socket *sock, struct msghdr *msg, |
| | | + size_t ignored, int flags) |
| | | +{ |
| | | + struct sock *sk = sock->sk; |
| | | + struct alg_sock *ask = alg_sk(sk); |
| | | + struct sock *psk = ask->parent; |
| | | + struct alg_sock *pask = alg_sk(psk); |
| | | + struct af_alg_ctx *ctx = ask->private; |
| | | + struct akcipher_tfm *akc = pask->private; |
| | | + struct crypto_akcipher *tfm = akc->akcipher; |
| | | + struct af_alg_async_req *areq; |
| | | + size_t len; |
| | | + size_t used; |
| | | + int err; |
| | | + int maxsize; |
| | | + |
| | | + if (!ctx->used) { |
| | | + err = af_alg_wait_for_data(sk, flags); |
| | | + if (err) |
| | | + return err; |
| | | + } |
| | | + |
| | | + maxsize = crypto_akcipher_maxsize(tfm); |
| | | + if (maxsize < 0) |
| | | + return maxsize; |
| | | + |
| | | + /* Allocate cipher request for current operation. */ |
| | | + areq = af_alg_alloc_areq(sk, sizeof(struct af_alg_async_req) + |
| | | + crypto_akcipher_reqsize(tfm)); |
| | | + if (IS_ERR(areq)) |
| | | + return PTR_ERR(areq); |
| | | + |
| | | + /* convert iovecs of output buffers into RX SGL */ |
| | | + err = af_alg_get_rsgl(sk, msg, flags, areq, maxsize, &len); |
| | | + if (err) |
| | | + goto free; |
| | | + |
| | | + /* ensure output buffer is sufficiently large */ |
| | | + if (len < maxsize) { |
| | | + err = -EMSGSIZE; |
| | | + goto free; |
| | | + } |
| | | + |
| | | + /* |
| | | + * Create a per request TX SGL for this request which tracks the |
| | | + * SG entries from the global TX SGL. |
| | | + */ |
| | | + used = ctx->used; |
| | | + areq->tsgl_entries = af_alg_count_tsgl(sk, used, 0); |
| | | + if (!areq->tsgl_entries) |
| | | + areq->tsgl_entries = 1; |
| | | + areq->tsgl = sock_kmalloc(sk, sizeof(*areq->tsgl) * areq->tsgl_entries, |
| | | + GFP_KERNEL); |
| | | + if (!areq->tsgl) { |
| | | + err = -ENOMEM; |
| | | + goto free; |
| | | + } |
| | | + sg_init_table(areq->tsgl, areq->tsgl_entries); |
| | | + af_alg_pull_tsgl(sk, used, areq->tsgl, 0); |
| | | + |
| | | + /* Initialize the crypto operation */ |
| | | + akcipher_request_set_tfm(&areq->cra_u.akcipher_req, tfm); |
| | | + akcipher_request_set_crypt(&areq->cra_u.akcipher_req, areq->tsgl, |
| | | + areq->first_rsgl.sgl.sg, used, len); |
| | | + |
| | | + if (msg->msg_iocb && !is_sync_kiocb(msg->msg_iocb)) { |
| | | + /* AIO operation */ |
| | | + sock_hold(sk); |
| | | + areq->iocb = msg->msg_iocb; |
| | | + |
| | | + /* Remember output size that will be generated. */ |
| | | + areq->outlen = areq->cra_u.akcipher_req.dst_len ? |
| | | + areq->cra_u.akcipher_req.dst_len : len; |
| | | + |
| | | + akcipher_request_set_callback(&areq->cra_u.akcipher_req, |
| | | + CRYPTO_TFM_REQ_MAY_SLEEP, |
| | | + af_alg_async_cb, areq); |
| | | + err = akcipher_cipher_op(ctx, areq); |
| | | + |
| | | + /* AIO operation in progress */ |
| | | + if (err == -EINPROGRESS || err == -EBUSY) |
| | | + return -EIOCBQUEUED; |
| | | + |
| | | + sock_put(sk); |
| | | + } else { |
| | | + /* Synchronous operation */ |
| | | + akcipher_request_set_callback(&areq->cra_u.akcipher_req, |
| | | + CRYPTO_TFM_REQ_MAY_SLEEP | |
| | | + CRYPTO_TFM_REQ_MAY_BACKLOG, |
| | | + crypto_req_done, |
| | | + &ctx->wait); |
| | | + err = crypto_wait_req(akcipher_cipher_op(ctx, areq), |
| | | + &ctx->wait); |
| | | + } |
| | | + |
| | | +free: |
| | | + af_alg_free_resources(areq); |
| | | + |
| | | + return err ? err : areq->cra_u.akcipher_req.dst_len; |
| | | +} |
| | | + |
| | | +static int akcipher_recvmsg(struct socket *sock, struct msghdr *msg, |
| | | + size_t ignored, int flags) |
| | | +{ |
| | | + struct sock *sk = sock->sk; |
| | | + struct alg_sock *ask = alg_sk(sk); |
| | | + struct sock *psk = ask->parent; |
| | | + struct alg_sock *pask = alg_sk(psk); |
| | | + struct akcipher_tfm *akc = pask->private; |
| | | + struct crypto_akcipher *tfm = akc->akcipher; |
| | | + int ret = 0; |
| | | + int err; |
| | | + |
| | | + lock_sock(sk); |
| | | + |
| | | + while (msg_data_left(msg)) { |
| | | + err = _akcipher_recvmsg(sock, msg, ignored, flags); |
| | | + |
| | | + /* |
| | | + * This error covers -EIOCBQUEUED which implies that we can |
| | | + * only handle one AIO request. If the caller wants to have |
| | | + * multiple AIO requests in parallel, he must make multiple |
| | | + * separate AIO calls. |
| | | + */ |
| | | + if (err <= 0) { |
| | | + if (err == -EIOCBQUEUED || err == -EBADMSG || !ret) |
| | | + ret = err; |
| | | + goto out; |
| | | + } |
| | | + |
| | | + ret += err; |
| | | + |
| | | + /* |
| | | + * The caller must provide crypto_akcipher_maxsize per request. |
| | | + * If he provides more, we conclude that multiple akcipher |
| | | + * operations are requested. |
| | | + */ |
| | | + iov_iter_advance(&msg->msg_iter, |
| | | + crypto_akcipher_maxsize(tfm) - err); |
| | | + } |
| | | + |
| | | +out: |
| | | + af_alg_wmem_wakeup(sk); |
| | | + release_sock(sk); |
| | | + return ret; |
| | | +} |
| | | + |
| | | +static struct proto_ops algif_akcipher_ops = { |
| | | + .family = PF_ALG, |
| | | + |
| | | + .connect = sock_no_connect, |
| | | + .socketpair = sock_no_socketpair, |
| | | + .getname = sock_no_getname, |
| | | + .ioctl = sock_no_ioctl, |
| | | + .listen = sock_no_listen, |
| | | + .shutdown = sock_no_shutdown, |
| | | + .getsockopt = sock_no_getsockopt, |
| | | + .mmap = sock_no_mmap, |
| | | + .bind = sock_no_bind, |
| | | + .accept = sock_no_accept, |
| | | + .setsockopt = sock_no_setsockopt, |
| | | + |
| | | + .release = af_alg_release, |
| | | + .sendmsg = akcipher_sendmsg, |
| | | + .sendpage = af_alg_sendpage, |
| | | + .recvmsg = akcipher_recvmsg, |
| | | + .poll = af_alg_poll, |
| | | +}; |
| | | + |
| | | +static int akcipher_check_key(struct socket *sock) |
| | | +{ |
| | | + struct sock *psk; |
| | | + struct alg_sock *pask; |
| | | + struct akcipher_tfm *tfm; |
| | | + struct sock *sk = sock->sk; |
| | | + struct alg_sock *ask = alg_sk(sk); |
| | | + int err = 0; |
| | | + |
| | | + lock_sock(sk); |
| | | + if (ask->refcnt) |
| | | + goto unlock_child; |
| | | + |
| | | + psk = ask->parent; |
| | | + pask = alg_sk(ask->parent); |
| | | + tfm = pask->private; |
| | | + |
| | | + lock_sock_nested(psk, SINGLE_DEPTH_NESTING); |
| | | + if (!tfm->has_key) { |
| | | + err = -ENOKEY; |
| | | + goto unlock; |
| | | + } |
| | | + |
| | | + if (!pask->refcnt++) |
| | | + sock_hold(psk); |
| | | + |
| | | + ask->refcnt = 1; |
| | | + sock_put(psk); |
| | | + |
| | | + err = 0; |
| | | + |
| | | +unlock: |
| | | + release_sock(psk); |
| | | +unlock_child: |
| | | + release_sock(sk); |
| | | + |
| | | + return err; |
| | | +} |
| | | + |
| | | +static int akcipher_sendmsg_nokey(struct socket *sock, struct msghdr *msg, |
| | | + size_t size) |
| | | +{ |
| | | + int err; |
| | | + |
| | | + err = akcipher_check_key(sock); |
| | | + if (err) |
| | | + return err; |
| | | + |
| | | + return akcipher_sendmsg(sock, msg, size); |
| | | +} |
| | | + |
| | | +static ssize_t akcipher_sendpage_nokey(struct socket *sock, struct page *page, |
| | | + int offset, size_t size, int flags) |
| | | +{ |
| | | + int err; |
| | | + |
| | | + err = akcipher_check_key(sock); |
| | | + if (err) |
| | | + return err; |
| | | + |
| | | + return af_alg_sendpage(sock, page, offset, size, flags); |
| | | +} |
| | | + |
| | | +static int akcipher_recvmsg_nokey(struct socket *sock, struct msghdr *msg, |
| | | + size_t ignored, int flags) |
| | | +{ |
| | | + int err; |
| | | + |
| | | + err = akcipher_check_key(sock); |
| | | + if (err) |
| | | + return err; |
| | | + |
| | | + return akcipher_recvmsg(sock, msg, ignored, flags); |
| | | +} |
| | | + |
| | | +static struct proto_ops algif_akcipher_ops_nokey = { |
| | | + .family = PF_ALG, |
| | | + |
| | | + .connect = sock_no_connect, |
| | | + .socketpair = sock_no_socketpair, |
| | | + .getname = sock_no_getname, |
| | | + .ioctl = sock_no_ioctl, |
| | | + .listen = sock_no_listen, |
| | | + .shutdown = sock_no_shutdown, |
| | | + .getsockopt = sock_no_getsockopt, |
| | | + .mmap = sock_no_mmap, |
| | | + .bind = sock_no_bind, |
| | | + .accept = sock_no_accept, |
| | | + .setsockopt = sock_no_setsockopt, |
| | | + |
| | | + .release = af_alg_release, |
| | | + .sendmsg = akcipher_sendmsg_nokey, |
| | | + .sendpage = akcipher_sendpage_nokey, |
| | | + .recvmsg = akcipher_recvmsg_nokey, |
| | | + .poll = af_alg_poll, |
| | | +}; |
| | | + |
| | | +static void *akcipher_bind(const char *name, u32 type, u32 mask) |
| | | +{ |
| | | + struct akcipher_tfm *tfm; |
| | | + struct crypto_akcipher *akcipher; |
| | | + |
| | | + tfm = kmalloc(sizeof(*tfm), GFP_KERNEL); |
| | | + if (!tfm) |
| | | + return ERR_PTR(-ENOMEM); |
| | | + |
| | | + akcipher = crypto_alloc_akcipher(name, type, mask); |
| | | + if (IS_ERR(akcipher)) { |
| | | + kfree(tfm); |
| | | + return ERR_CAST(akcipher); |
| | | + } |
| | | + |
| | | + tfm->akcipher = akcipher; |
| | | + tfm->has_key = false; |
| | | + |
| | | + return tfm; |
| | | +} |
| | | + |
| | | +static void akcipher_release(void *private) |
| | | +{ |
| | | + struct akcipher_tfm *tfm = private; |
| | | + struct crypto_akcipher *akcipher = tfm->akcipher; |
| | | + |
| | | + crypto_free_akcipher(akcipher); |
| | | + kfree(tfm); |
| | | +} |
| | | + |
| | | +static int akcipher_setprivkey(void *private, const u8 *key, |
| | | + unsigned int keylen) |
| | | +{ |
| | | + struct akcipher_tfm *tfm = private; |
| | | + struct crypto_akcipher *akcipher = tfm->akcipher; |
| | | + int err; |
| | | + |
| | | + err = crypto_akcipher_set_priv_key(akcipher, key, keylen); |
| | | + tfm->has_key = !err; |
| | | + |
| | | + /* Return the maximum size of the akcipher operation. */ |
| | | + if (!err) |
| | | + err = crypto_akcipher_maxsize(akcipher); |
| | | + |
| | | + return err; |
| | | +} |
| | | + |
| | | +static int akcipher_setpubkey(void *private, const u8 *key, unsigned int keylen) |
| | | +{ |
| | | + struct akcipher_tfm *tfm = private; |
| | | + struct crypto_akcipher *akcipher = tfm->akcipher; |
| | | + int err; |
| | | + |
| | | + err = crypto_akcipher_set_pub_key(akcipher, key, keylen); |
| | | + tfm->has_key = !err; |
| | | + |
| | | + /* Return the maximum size of the akcipher operation. */ |
| | | + if (!err) |
| | | + err = crypto_akcipher_maxsize(akcipher); |
| | | + |
| | | + return err; |
| | | +} |
| | | + |
| | | +static void akcipher_sock_destruct(struct sock *sk) |
| | | +{ |
| | | + struct alg_sock *ask = alg_sk(sk); |
| | | + struct af_alg_ctx *ctx = ask->private; |
| | | + |
| | | + af_alg_pull_tsgl(sk, ctx->used, NULL, 0); |
| | | + sock_kfree_s(sk, ctx, ctx->len); |
| | | + af_alg_release_parent(sk); |
| | | +} |
| | | + |
| | | +static int akcipher_accept_parent_nokey(void *private, struct sock *sk) |
| | | +{ |
| | | + struct af_alg_ctx *ctx; |
| | | + struct alg_sock *ask = alg_sk(sk); |
| | | + unsigned int len = sizeof(*ctx); |
| | | + |
| | | + ctx = sock_kmalloc(sk, len, GFP_KERNEL); |
| | | + if (!ctx) |
| | | + return -ENOMEM; |
| | | + |
| | | + INIT_LIST_HEAD(&ctx->tsgl_list); |
| | | + ctx->len = len; |
| | | + ctx->used = 0; |
| | | + atomic_set(&ctx->rcvused, 0); |
| | | + ctx->more = 0; |
| | | + ctx->merge = 0; |
| | | + ctx->op = 0; |
| | | + crypto_init_wait(&ctx->wait); |
| | | + |
| | | + ask->private = ctx; |
| | | + |
| | | + sk->sk_destruct = akcipher_sock_destruct; |
| | | + |
| | | + return 0; |
| | | +} |
| | | + |
| | | +static int akcipher_accept_parent(void *private, struct sock *sk) |
| | | +{ |
| | | + struct akcipher_tfm *tfm = private; |
| | | + |
| | | + if (!tfm->has_key) |
| | | + return -ENOKEY; |
| | | + |
| | | + return akcipher_accept_parent_nokey(private, sk); |
| | | +} |
| | | + |
| | | +static const struct af_alg_type algif_type_akcipher = { |
| | | + .bind = akcipher_bind, |
| | | + .release = akcipher_release, |
| | | + .setkey = akcipher_setprivkey, |
| | | + .setpubkey = akcipher_setpubkey, |
| | | + .setauthsize = NULL, |
| | | + .accept = akcipher_accept_parent, |
| | | + .accept_nokey = akcipher_accept_parent_nokey, |
| | | + .ops = &algif_akcipher_ops, |
| | | + .ops_nokey = &algif_akcipher_ops_nokey, |
| | | + .name = "akcipher", |
| | | + .owner = THIS_MODULE |
| | | +}; |
| | | + |
| | | +static int __init algif_akcipher_init(void) |
| | | +{ |
| | | + return af_alg_register_type(&algif_type_akcipher); |
| | | +} |
| | | + |
| | | +static void __exit algif_akcipher_exit(void) |
| | | +{ |
| | | + int err = af_alg_unregister_type(&algif_type_akcipher); |
| | | + |
| | | + BUG_ON(err); |
| | | +} |
| | | + |
| | | +module_init(algif_akcipher_init); |
| | | +module_exit(algif_akcipher_exit); |
| | | +MODULE_LICENSE("GPL"); |
| | | +MODULE_AUTHOR("Stephan Mueller <smueller@chronox.de>"); |
| | | +MODULE_DESCRIPTION("Asymmetric kernel crypto API user space interface"); |
| | | diff -Nuar linux-at91/crypto/algif_kpp.c linux-at91-sama5d4/crypto/algif_kpp.c |
| | | --- linux-at91/crypto/algif_kpp.c 1970-01-01 08:00:00.000000000 +0800 |
| | | +++ linux-at91-sama5d4/crypto/algif_kpp.c 2019-08-26 00:44:57.988610990 +0800 |
| | | @@ -0,0 +1,612 @@ |
| | | +/* |
| | | + * algif_kpp: User-space interface for key protocol primitives algorithms |
| | | + * |
| | | + * Copyright (C) 2018 - 2019, Stephan Mueller <smueller@chronox.de> |
| | | + * |
| | | + * This file provides the user-space API for key protocol primitives. |
| | | + * |
| | | + * This program is free software; you can redistribute it and/or modify it |
| | | + * under the terms of the GNU General Public License as published by the Free |
| | | + * Software Foundation; either version 2 of the License, or (at your option) |
| | | + * any later version. |
| | | + * |
| | | + * The following concept of the memory management is used: |
| | | + * |
| | | + * The kernel maintains two SGLs, the TX SGL and the RX SGL. The TX SGL is |
| | | + * filled by user space with the data submitted via sendpage/sendmsg. Filling |
| | | + * up the TX SGL does not cause a crypto operation -- the data will only be |
| | | + * tracked by the kernel. Upon receipt of one recvmsg call, the caller must |
| | | + * provide a buffer which is tracked with the RX SGL. |
| | | + * |
| | | + * During the processing of the recvmsg operation, the cipher request is |
| | | + * allocated and prepared. As part of the recvmsg operation, the processed |
| | | + * TX buffers are extracted from the TX SGL into a separate SGL. |
| | | + * |
| | | + * After the completion of the crypto operation, the RX SGL and the cipher |
| | | + * request is released. The extracted TX SGL parts are released together with |
| | | + * the RX SGL release. |
| | | + */ |
| | | + |
| | | +#include <crypto/dh.h> |
| | | +#include <crypto/ecdh.h> |
| | | +#include <crypto/kpp.h> |
| | | +#include <crypto/rng.h> |
| | | +#include <crypto/if_alg.h> |
| | | +#include <crypto/scatterwalk.h> |
| | | +#include <linux/init.h> |
| | | +#include <linux/kernel.h> |
| | | +#include <linux/list.h> |
| | | +#include <linux/mm.h> |
| | | +#include <linux/module.h> |
| | | +#include <linux/net.h> |
| | | +#include <net/sock.h> |
| | | + |
| | | +struct kpp_tfm { |
| | | + struct crypto_kpp *kpp; |
| | | + bool has_key; |
| | | + |
| | | +#define KPP_NO_PARAMS 0 |
| | | +#define KPP_DH_PARAMS 1 |
| | | +#define KPP_ECDH_PARAMS 2 |
| | | + int has_params; /* Type of KPP mechanism */ |
| | | +}; |
| | | + |
| | | +static int kpp_sendmsg(struct socket *sock, struct msghdr *msg, size_t size) |
| | | +{ |
| | | + return af_alg_sendmsg(sock, msg, size, 0); |
| | | +} |
| | | + |
| | | +static inline int kpp_cipher_op(struct af_alg_ctx *ctx, |
| | | + struct af_alg_async_req *areq) |
| | | +{ |
| | | + switch (ctx->op) { |
| | | + case ALG_OP_KEYGEN: |
| | | + return crypto_kpp_generate_public_key(&areq->cra_u.kpp_req); |
| | | + case ALG_OP_SSGEN: |
| | | + return crypto_kpp_compute_shared_secret(&areq->cra_u.kpp_req); |
| | | + default: |
| | | + return -EOPNOTSUPP; |
| | | + } |
| | | +} |
| | | + |
| | | +static int _kpp_recvmsg(struct socket *sock, struct msghdr *msg, |
| | | + size_t ignored, int flags) |
| | | +{ |
| | | + struct sock *sk = sock->sk; |
| | | + struct alg_sock *ask = alg_sk(sk); |
| | | + struct sock *psk = ask->parent; |
| | | + struct alg_sock *pask = alg_sk(psk); |
| | | + struct af_alg_ctx *ctx = ask->private; |
| | | + struct kpp_tfm *kpp = pask->private; |
| | | + struct crypto_kpp *tfm = kpp->kpp; |
| | | + struct af_alg_async_req *areq; |
| | | + size_t len; |
| | | + size_t used = 0; |
| | | + int err; |
| | | + int maxsize; |
| | | + |
| | | + if (!ctx->used) { |
| | | + err = af_alg_wait_for_data(sk, flags); |
| | | + if (err) |
| | | + return err; |
| | | + } |
| | | + |
| | | + maxsize = crypto_kpp_maxsize(tfm); |
| | | + if (maxsize < 0) |
| | | + return maxsize; |
| | | + |
| | | + /* Allocate cipher request for current operation. */ |
| | | + areq = af_alg_alloc_areq(sk, sizeof(struct af_alg_async_req) + |
| | | + crypto_kpp_reqsize(tfm)); |
| | | + if (IS_ERR(areq)) |
| | | + return PTR_ERR(areq); |
| | | + |
| | | + /* convert iovecs of output buffers into RX SGL */ |
| | | + err = af_alg_get_rsgl(sk, msg, flags, areq, maxsize, &len); |
| | | + if (err) |
| | | + goto free; |
| | | + |
| | | + /* ensure output buffer is sufficiently large */ |
| | | + if (len < maxsize) { |
| | | + err = -EMSGSIZE; |
| | | + goto free; |
| | | + } |
| | | + |
| | | + /* |
| | | + * Create a per request TX SGL for this request which tracks the |
| | | + * SG entries from the global TX SGL. |
| | | + */ |
| | | + if (ctx->op == ALG_OP_SSGEN) { |
| | | + used = ctx->used; |
| | | + |
| | | + areq->tsgl_entries = af_alg_count_tsgl(sk, used, 0); |
| | | + if (!areq->tsgl_entries) |
| | | + areq->tsgl_entries = 1; |
| | | + areq->tsgl = sock_kmalloc( |
| | | + sk, sizeof(*areq->tsgl) * areq->tsgl_entries, |
| | | + GFP_KERNEL); |
| | | + if (!areq->tsgl) { |
| | | + err = -ENOMEM; |
| | | + goto free; |
| | | + } |
| | | + sg_init_table(areq->tsgl, areq->tsgl_entries); |
| | | + af_alg_pull_tsgl(sk, used, areq->tsgl, 0); |
| | | + } |
| | | + |
| | | + /* Initialize the crypto operation */ |
| | | + kpp_request_set_input(&areq->cra_u.kpp_req, areq->tsgl, used); |
| | | + kpp_request_set_output(&areq->cra_u.kpp_req, areq->first_rsgl.sgl.sg, |
| | | + len); |
| | | + kpp_request_set_tfm(&areq->cra_u.kpp_req, tfm); |
| | | + |
| | | + if (msg->msg_iocb && !is_sync_kiocb(msg->msg_iocb)) { |
| | | + /* AIO operation */ |
| | | + sock_hold(sk); |
| | | + areq->iocb = msg->msg_iocb; |
| | | + |
| | | + /* Remember output size that will be generated. */ |
| | | + areq->outlen = len; |
| | | + |
| | | + kpp_request_set_callback(&areq->cra_u.kpp_req, |
| | | + CRYPTO_TFM_REQ_MAY_SLEEP, |
| | | + af_alg_async_cb, areq); |
| | | + err = kpp_cipher_op(ctx, areq); |
| | | + |
| | | + /* AIO operation in progress */ |
| | | + if (err == -EINPROGRESS || err == -EBUSY) |
| | | + return -EIOCBQUEUED; |
| | | + |
| | | + sock_put(sk); |
| | | + } else { |
| | | + /* Synchronous operation */ |
| | | + kpp_request_set_callback(&areq->cra_u.kpp_req, |
| | | + CRYPTO_TFM_REQ_MAY_SLEEP | |
| | | + CRYPTO_TFM_REQ_MAY_BACKLOG, |
| | | + crypto_req_done, |
| | | + &ctx->wait); |
| | | + err = crypto_wait_req(kpp_cipher_op(ctx, areq), &ctx->wait); |
| | | + } |
| | | + |
| | | +free: |
| | | + af_alg_free_resources(areq); |
| | | + |
| | | + return err ? err : len; |
| | | +} |
| | | + |
| | | +static int kpp_recvmsg(struct socket *sock, struct msghdr *msg, |
| | | + size_t ignored, int flags) |
| | | +{ |
| | | + struct sock *sk = sock->sk; |
| | | + struct alg_sock *ask = alg_sk(sk); |
| | | + struct sock *psk = ask->parent; |
| | | + struct alg_sock *pask = alg_sk(psk); |
| | | + struct kpp_tfm *kpp = pask->private; |
| | | + struct crypto_kpp *tfm = kpp->kpp; |
| | | + int ret = 0; |
| | | + int err; |
| | | + |
| | | + lock_sock(sk); |
| | | + |
| | | + while (msg_data_left(msg)) { |
| | | + err = _kpp_recvmsg(sock, msg, ignored, flags); |
| | | + |
| | | + /* |
| | | + * This error covers -EIOCBQUEUED which implies that we can |
| | | + * only handle one AIO request. If the caller wants to have |
| | | + * multiple AIO requests in parallel, he must make multiple |
| | | + * separate AIO calls. |
| | | + */ |
| | | + if (err <= 0) { |
| | | + if (err == -EIOCBQUEUED || err == -EBADMSG || !ret) |
| | | + ret = err; |
| | | + goto out; |
| | | + } |
| | | + |
| | | + ret += err; |
| | | + |
| | | + /* |
| | | + * The caller must provide crypto_kpp_maxsize per request. |
| | | + * If he provides more, we conclude that multiple kpp |
| | | + * operations are requested. |
| | | + */ |
| | | + iov_iter_advance(&msg->msg_iter, |
| | | + crypto_kpp_maxsize(tfm) - err); |
| | | + } |
| | | + |
| | | +out: |
| | | + |
| | | + af_alg_wmem_wakeup(sk); |
| | | + release_sock(sk); |
| | | + return ret; |
| | | +} |
| | | + |
| | | +static struct proto_ops algif_kpp_ops = { |
| | | + .family = PF_ALG, |
| | | + |
| | | + .connect = sock_no_connect, |
| | | + .socketpair = sock_no_socketpair, |
| | | + .getname = sock_no_getname, |
| | | + .ioctl = sock_no_ioctl, |
| | | + .listen = sock_no_listen, |
| | | + .shutdown = sock_no_shutdown, |
| | | + .getsockopt = sock_no_getsockopt, |
| | | + .mmap = sock_no_mmap, |
| | | + .bind = sock_no_bind, |
| | | + .accept = sock_no_accept, |
| | | + .setsockopt = sock_no_setsockopt, |
| | | + |
| | | + .release = af_alg_release, |
| | | + .sendmsg = kpp_sendmsg, |
| | | + .sendpage = af_alg_sendpage, |
| | | + .recvmsg = kpp_recvmsg, |
| | | + .poll = af_alg_poll, |
| | | +}; |
| | | + |
| | | +static int kpp_check_key(struct socket *sock) |
| | | +{ |
| | | + struct sock *psk; |
| | | + struct alg_sock *pask; |
| | | + struct kpp_tfm *tfm; |
| | | + struct sock *sk = sock->sk; |
| | | + struct alg_sock *ask = alg_sk(sk); |
| | | + int err = 0; |
| | | + |
| | | + lock_sock(sk); |
| | | + if (ask->refcnt) |
| | | + goto unlock_child; |
| | | + |
| | | + psk = ask->parent; |
| | | + pask = alg_sk(ask->parent); |
| | | + tfm = pask->private; |
| | | + |
| | | + lock_sock_nested(psk, SINGLE_DEPTH_NESTING); |
| | | + if (!tfm->has_key || (tfm->has_params == KPP_NO_PARAMS)) { |
| | | + err = -ENOKEY; |
| | | + goto unlock; |
| | | + } |
| | | + |
| | | + if (!pask->refcnt++) |
| | | + sock_hold(psk); |
| | | + |
| | | + ask->refcnt = 1; |
| | | + sock_put(psk); |
| | | + |
| | | + err = 0; |
| | | + |
| | | +unlock: |
| | | + release_sock(psk); |
| | | +unlock_child: |
| | | + release_sock(sk); |
| | | + |
| | | + return err; |
| | | +} |
| | | + |
| | | +static int kpp_sendmsg_nokey(struct socket *sock, struct msghdr *msg, |
| | | + size_t size) |
| | | +{ |
| | | + int err; |
| | | + |
| | | + err = kpp_check_key(sock); |
| | | + if (err) |
| | | + return err; |
| | | + |
| | | + return kpp_sendmsg(sock, msg, size); |
| | | +} |
| | | + |
| | | +static ssize_t kpp_sendpage_nokey(struct socket *sock, struct page *page, |
| | | + int offset, size_t size, int flags) |
| | | +{ |
| | | + int err; |
| | | + |
| | | + err = kpp_check_key(sock); |
| | | + if (err) |
| | | + return err; |
| | | + |
| | | + return af_alg_sendpage(sock, page, offset, size, flags); |
| | | +} |
| | | + |
| | | +static int kpp_recvmsg_nokey(struct socket *sock, struct msghdr *msg, |
| | | + size_t ignored, int flags) |
| | | +{ |
| | | + int err; |
| | | + |
| | | + err = kpp_check_key(sock); |
| | | + if (err) |
| | | + return err; |
| | | + |
| | | + return kpp_recvmsg(sock, msg, ignored, flags); |
| | | +} |
| | | + |
| | | +static struct proto_ops algif_kpp_ops_nokey = { |
| | | + .family = PF_ALG, |
| | | + |
| | | + .connect = sock_no_connect, |
| | | + .socketpair = sock_no_socketpair, |
| | | + .getname = sock_no_getname, |
| | | + .ioctl = sock_no_ioctl, |
| | | + .listen = sock_no_listen, |
| | | + .shutdown = sock_no_shutdown, |
| | | + .getsockopt = sock_no_getsockopt, |
| | | + .mmap = sock_no_mmap, |
| | | + .bind = sock_no_bind, |
| | | + .accept = sock_no_accept, |
| | | + .setsockopt = sock_no_setsockopt, |
| | | + |
| | | + .release = af_alg_release, |
| | | + .sendmsg = kpp_sendmsg_nokey, |
| | | + .sendpage = kpp_sendpage_nokey, |
| | | + .recvmsg = kpp_recvmsg_nokey, |
| | | + .poll = af_alg_poll, |
| | | +}; |
| | | + |
| | | +static void *kpp_bind(const char *name, u32 type, u32 mask) |
| | | +{ |
| | | + struct kpp_tfm *tfm; |
| | | + struct crypto_kpp *kpp; |
| | | + |
| | | + tfm = kmalloc(sizeof(*tfm), GFP_KERNEL); |
| | | + if (!tfm) |
| | | + return ERR_PTR(-ENOMEM); |
| | | + |
| | | + kpp = crypto_alloc_kpp(name, type, mask); |
| | | + if (IS_ERR(kpp)) { |
| | | + kfree(tfm); |
| | | + return ERR_CAST(kpp); |
| | | + } |
| | | + |
| | | + tfm->kpp = kpp; |
| | | + tfm->has_key = false; |
| | | + tfm->has_params = KPP_NO_PARAMS; |
| | | + |
| | | + return tfm; |
| | | +} |
| | | + |
| | | +static void kpp_release(void *private) |
| | | +{ |
| | | + struct kpp_tfm *tfm = private; |
| | | + struct crypto_kpp *kpp = tfm->kpp; |
| | | + |
| | | + crypto_free_kpp(kpp); |
| | | + kfree(tfm); |
| | | +} |
| | | + |
| | | +static int kpp_dh_set_secret(struct crypto_kpp *tfm, struct dh *params) |
| | | +{ |
| | | + char *packed_key = NULL; |
| | | + unsigned int packed_key_len; |
| | | + int ret; |
| | | + |
| | | + packed_key_len = crypto_dh_key_len(params); |
| | | + packed_key = kmalloc(packed_key_len, GFP_KERNEL); |
| | | + if (!packed_key) |
| | | + return -ENOMEM; |
| | | + |
| | | + ret = crypto_dh_encode_key(packed_key, packed_key_len, params); |
| | | + if (ret) |
| | | + goto out; |
| | | + |
| | | + ret = crypto_kpp_set_secret(tfm, packed_key, packed_key_len); |
| | | + |
| | | +out: |
| | | + kfree(packed_key); |
| | | + return ret; |
| | | +} |
| | | + |
| | | +static int kpp_dh_set_privkey(struct crypto_kpp *tfm, const u8 *key, |
| | | + unsigned int keylen) |
| | | +{ |
| | | + struct dh params = { |
| | | + .key = key, |
| | | + .key_size = keylen, |
| | | + .p = NULL, |
| | | + .p_size = 0, |
| | | + .g = NULL, |
| | | + .g_size = 0, |
| | | + }; |
| | | + |
| | | + return kpp_dh_set_secret(tfm, ¶ms); |
| | | +} |
| | | + |
| | | +static int kpp_ecdh_set_secret(struct crypto_kpp *tfm, struct ecdh *params) |
| | | +{ |
| | | + char *packed_key = NULL; |
| | | + unsigned int packed_key_len; |
| | | + int ret; |
| | | + |
| | | + packed_key_len = crypto_ecdh_key_len(params); |
| | | + packed_key = kmalloc(packed_key_len, GFP_KERNEL); |
| | | + if (!packed_key) |
| | | + return -ENOMEM; |
| | | + |
| | | + ret = crypto_ecdh_encode_key(packed_key, packed_key_len, params); |
| | | + if (ret) |
| | | + goto out; |
| | | + |
| | | + ret = crypto_kpp_set_secret(tfm, packed_key, packed_key_len); |
| | | + |
| | | +out: |
| | | + kfree(packed_key); |
| | | + return ret; |
| | | +} |
| | | + |
| | | +static int kpp_ecdh_set_privkey(struct crypto_kpp *tfm, const u8 *key, |
| | | + unsigned int keylen) |
| | | +{ |
| | | + struct ecdh params = { |
| | | + .curve_id = 0, |
| | | + .key = key, |
| | | + .key_size = keylen, |
| | | + }; |
| | | + |
| | | + return kpp_ecdh_set_secret(tfm, ¶ms); |
| | | +} |
| | | + |
| | | +static int kpp_setprivkey(void *private, const u8 *key, unsigned int keylen) |
| | | +{ |
| | | + struct kpp_tfm *kpp = private; |
| | | + struct crypto_kpp *tfm = kpp->kpp; |
| | | + int err; |
| | | + |
| | | + if (kpp->has_params == KPP_NO_PARAMS) |
| | | + return -ENOKEY; |
| | | + |
| | | + /* The DH code cannot generate private keys. ECDH can do that */ |
| | | + if ((!key || !keylen) && (kpp->has_params == KPP_DH_PARAMS)) { |
| | | + kpp->has_key = false; |
| | | + return -EOPNOTSUPP; |
| | | + } |
| | | + |
| | | + switch (kpp->has_params) { |
| | | + case KPP_DH_PARAMS: |
| | | + err = kpp_dh_set_privkey(tfm, key, keylen); |
| | | + break; |
| | | + case KPP_ECDH_PARAMS: |
| | | + err = kpp_ecdh_set_privkey(tfm, key, keylen); |
| | | + break; |
| | | + default: |
| | | + err = -EFAULT; |
| | | + } |
| | | + |
| | | + kpp->has_key = !err; |
| | | + |
| | | + /* Return the maximum size of the kpp operation. */ |
| | | + if (!err) |
| | | + err = crypto_kpp_maxsize(tfm); |
| | | + |
| | | + return err; |
| | | +} |
| | | + |
| | | +static int kpp_dh_setparams_pkcs3(void *private, const u8 *params, |
| | | + unsigned int paramslen) |
| | | +{ |
| | | + struct kpp_tfm *kpp = private; |
| | | + struct crypto_kpp *tfm = kpp->kpp; |
| | | + int err; |
| | | + |
| | | + /* If parameters were already set, disallow setting them again. */ |
| | | + if (kpp->has_params != KPP_NO_PARAMS) |
| | | + return -EINVAL; |
| | | + |
| | | + err = crypto_kpp_set_params(tfm, params, paramslen); |
| | | + if (!err) { |
| | | + kpp->has_params = KPP_DH_PARAMS; |
| | | + /* Return the maximum size of the kpp operation. */ |
| | | + err = crypto_kpp_maxsize(tfm); |
| | | + } else |
| | | + kpp->has_params = KPP_NO_PARAMS; |
| | | + |
| | | + return err; |
| | | +} |
| | | + |
| | | +static int kpp_ecdh_setcurve(void *private, const u8 *curveid, |
| | | + unsigned int curveidlen) |
| | | +{ |
| | | + struct kpp_tfm *kpp = private; |
| | | + struct crypto_kpp *tfm = kpp->kpp; |
| | | + int err; |
| | | + struct ecdh params = { |
| | | + .key = NULL, |
| | | + .key_size = 0, |
| | | + }; |
| | | + |
| | | + /* If parameters were already set, disallow setting them again. */ |
| | | + if (kpp->has_params != KPP_NO_PARAMS) |
| | | + return -EINVAL; |
| | | + |
| | | + if (curveidlen != sizeof(unsigned long)) |
| | | + return -EINVAL; |
| | | + |
| | | + err = kstrtou16(curveid, 10, ¶ms.curve_id); |
| | | + if (err) |
| | | + return err; |
| | | + |
| | | + err = kpp_ecdh_set_secret(tfm, ¶ms); |
| | | + if (!err) { |
| | | + kpp->has_params = KPP_ECDH_PARAMS; |
| | | + /* Return the maximum size of the kpp operation. */ |
| | | + err = crypto_kpp_maxsize(tfm); |
| | | + } else |
| | | + kpp->has_params = KPP_NO_PARAMS; |
| | | + |
| | | + return err; |
| | | +} |
| | | + |
| | | +static void kpp_sock_destruct(struct sock *sk) |
| | | +{ |
| | | + struct alg_sock *ask = alg_sk(sk); |
| | | + struct af_alg_ctx *ctx = ask->private; |
| | | + |
| | | + af_alg_pull_tsgl(sk, ctx->used, NULL, 0); |
| | | + sock_kfree_s(sk, ctx, ctx->len); |
| | | + af_alg_release_parent(sk); |
| | | +} |
| | | + |
| | | +static int kpp_accept_parent_nokey(void *private, struct sock *sk) |
| | | +{ |
| | | + struct af_alg_ctx *ctx; |
| | | + struct alg_sock *ask = alg_sk(sk); |
| | | + unsigned int len = sizeof(*ctx); |
| | | + |
| | | + ctx = sock_kmalloc(sk, len, GFP_KERNEL); |
| | | + if (!ctx) |
| | | + return -ENOMEM; |
| | | + |
| | | + INIT_LIST_HEAD(&ctx->tsgl_list); |
| | | + ctx->len = len; |
| | | + ctx->used = 0; |
| | | + atomic_set(&ctx->rcvused, 0); |
| | | + ctx->more = 0; |
| | | + ctx->merge = 0; |
| | | + ctx->op = 0; |
| | | + crypto_init_wait(&ctx->wait); |
| | | + |
| | | + ask->private = ctx; |
| | | + |
| | | + sk->sk_destruct = kpp_sock_destruct; |
| | | + |
| | | + return 0; |
| | | +} |
| | | + |
| | | +static int kpp_accept_parent(void *private, struct sock *sk) |
| | | +{ |
| | | + struct kpp_tfm *tfm = private; |
| | | + |
| | | + if (!tfm->has_key || (tfm->has_params == KPP_NO_PARAMS)) |
| | | + return -ENOKEY; |
| | | + |
| | | + return kpp_accept_parent_nokey(private, sk); |
| | | +} |
| | | + |
| | | +static const struct af_alg_type algif_type_kpp = { |
| | | + .bind = kpp_bind, |
| | | + .release = kpp_release, |
| | | + .setkey = kpp_setprivkey, |
| | | + .setpubkey = NULL, |
| | | + .dhparams = kpp_dh_setparams_pkcs3, |
| | | + .ecdhcurve = kpp_ecdh_setcurve, |
| | | + .setauthsize = NULL, |
| | | + .accept = kpp_accept_parent, |
| | | + .accept_nokey = kpp_accept_parent_nokey, |
| | | + .ops = &algif_kpp_ops, |
| | | + .ops_nokey = &algif_kpp_ops_nokey, |
| | | + .name = "kpp", |
| | | + .owner = THIS_MODULE |
| | | +}; |
| | | + |
| | | +static int __init algif_kpp_init(void) |
| | | +{ |
| | | + return af_alg_register_type(&algif_type_kpp); |
| | | +} |
| | | + |
| | | +static void __exit algif_kpp_exit(void) |
| | | +{ |
| | | + int err = af_alg_unregister_type(&algif_type_kpp); |
| | | + |
| | | + BUG_ON(err); |
| | | +} |
| | | + |
| | | +module_init(algif_kpp_init); |
| | | +module_exit(algif_kpp_exit); |
| | | +MODULE_LICENSE("GPL"); |
| | | +MODULE_AUTHOR("Stephan Mueller <smueller@chronox.de>"); |
| | | +MODULE_DESCRIPTION("Key protocol primitives kernel crypto API user space interface"); |
| | | diff -Nuar linux-at91/crypto/algif_skcipher.c linux-at91-sama5d4/crypto/algif_skcipher.c |
| | | --- linux-at91/crypto/algif_skcipher.c 2019-07-10 18:07:41.000000000 +0800 |
| | | +++ linux-at91-sama5d4/crypto/algif_skcipher.c 2019-08-26 00:44:57.988610990 +0800 |
| | | @@ -51,6 +51,19 @@ |
| | | return af_alg_sendmsg(sock, msg, size, ivsize); |
| | | } |
| | | |
| | | +static inline int skcipher_cipher_op(struct af_alg_ctx *ctx, |
| | | + struct af_alg_async_req *areq) |
| | | +{ |
| | | + switch (ctx->op) { |
| | | + case ALG_OP_ENCRYPT: |
| | | + return crypto_skcipher_encrypt(&areq->cra_u.skcipher_req); |
| | | + case ALG_OP_DECRYPT: |
| | | + return crypto_skcipher_decrypt(&areq->cra_u.skcipher_req); |
| | | + default: |
| | | + return -EOPNOTSUPP; |
| | | + } |
| | | +} |
| | | + |
| | | static int _skcipher_recvmsg(struct socket *sock, struct msghdr *msg, |
| | | size_t ignored, int flags) |
| | | { |
| | | @@ -126,9 +139,7 @@ |
| | | skcipher_request_set_callback(&areq->cra_u.skcipher_req, |
| | | CRYPTO_TFM_REQ_MAY_SLEEP, |
| | | af_alg_async_cb, areq); |
| | | - err = ctx->enc ? |
| | | - crypto_skcipher_encrypt(&areq->cra_u.skcipher_req) : |
| | | - crypto_skcipher_decrypt(&areq->cra_u.skcipher_req); |
| | | + err = skcipher_cipher_op(ctx, areq); |
| | | |
| | | /* AIO operation in progress */ |
| | | if (err == -EINPROGRESS || err == -EBUSY) |
| | | @@ -141,10 +152,8 @@ |
| | | CRYPTO_TFM_REQ_MAY_SLEEP | |
| | | CRYPTO_TFM_REQ_MAY_BACKLOG, |
| | | crypto_req_done, &ctx->wait); |
| | | - err = crypto_wait_req(ctx->enc ? |
| | | - crypto_skcipher_encrypt(&areq->cra_u.skcipher_req) : |
| | | - crypto_skcipher_decrypt(&areq->cra_u.skcipher_req), |
| | | - &ctx->wait); |
| | | + err = crypto_wait_req(skcipher_cipher_op(ctx, areq), |
| | | + &ctx->wait); |
| | | } |
| | | |
| | | |
| | | @@ -360,7 +369,7 @@ |
| | | atomic_set(&ctx->rcvused, 0); |
| | | ctx->more = 0; |
| | | ctx->merge = 0; |
| | | - ctx->enc = 0; |
| | | + ctx->op = 0; |
| | | crypto_init_wait(&ctx->wait); |
| | | |
| | | ask->private = ctx; |
| | | diff -Nuar linux-at91/crypto/dh.c linux-at91-sama5d4/crypto/dh.c |
| | | --- linux-at91/crypto/dh.c 2019-07-10 18:07:41.000000000 +0800 |
| | | +++ linux-at91-sama5d4/crypto/dh.c 2019-08-26 00:44:57.988610990 +0800 |
| | | @@ -22,15 +22,25 @@ |
| | | MPI xa; /* Value is guaranteed to be set. */ |
| | | }; |
| | | |
| | | -static void dh_clear_ctx(struct dh_ctx *ctx) |
| | | +static inline void dh_clear_params(struct dh_ctx *ctx) |
| | | { |
| | | mpi_free(ctx->p); |
| | | mpi_free(ctx->q); |
| | | +} |
| | | + |
| | | +static inline void dh_clear_key(struct dh_ctx *ctx) |
| | | +{ |
| | | mpi_free(ctx->g); |
| | | mpi_free(ctx->xa); |
| | | memset(ctx, 0, sizeof(*ctx)); |
| | | } |
| | | |
| | | +static void dh_clear_ctx(struct dh_ctx *ctx) |
| | | +{ |
| | | + dh_clear_params(ctx); |
| | | + dh_clear_key(ctx); |
| | | +} |
| | | + |
| | | /* |
| | | * If base is g we compute the public key |
| | | * ya = g^xa mod p; [RFC2631 sec 2.1.1] |
| | | @@ -55,6 +65,10 @@ |
| | | |
| | | static int dh_set_params(struct dh_ctx *ctx, struct dh *params) |
| | | { |
| | | + /* If DH parameters are not given, do not check them. */ |
| | | + if (!params->p_size && !params->g_size) |
| | | + return 0; |
| | | + |
| | | if (dh_check_params_length(params->p_size << 3)) |
| | | return -EINVAL; |
| | | |
| | | @@ -75,6 +89,23 @@ |
| | | return 0; |
| | | } |
| | | |
| | | +static int dh_set_params_pkcs3(struct crypto_kpp *tfm, const void *param, |
| | | + unsigned int param_len) |
| | | +{ |
| | | + struct dh_ctx *ctx = dh_get_ctx(tfm); |
| | | + struct dh parsed_params; |
| | | + int ret; |
| | | + |
| | | + /* Free the old parameter if any */ |
| | | + dh_clear_params(ctx); |
| | | + |
| | | + ret = dh_parse_params_pkcs3(&parsed_params, param, param_len); |
| | | + if (ret) |
| | | + return ret; |
| | | + |
| | | + return dh_set_params(ctx, &parsed_params); |
| | | +} |
| | | + |
| | | static int dh_set_secret(struct crypto_kpp *tfm, const void *buf, |
| | | unsigned int len) |
| | | { |
| | | @@ -82,7 +113,7 @@ |
| | | struct dh params; |
| | | |
| | | /* Free the old MPI key if any */ |
| | | - dh_clear_ctx(ctx); |
| | | + dh_clear_key(ctx); |
| | | |
| | | if (crypto_dh_decode_key(buf, len, ¶ms) < 0) |
| | | goto err_clear_ctx; |
| | | @@ -157,11 +188,10 @@ |
| | | MPI base, val = mpi_alloc(0); |
| | | int ret = 0; |
| | | int sign; |
| | | - |
| | | if (!val) |
| | | return -ENOMEM; |
| | | |
| | | - if (unlikely(!ctx->xa)) { |
| | | + if (unlikely(!ctx->xa || !ctx->p || !ctx->g)) { |
| | | ret = -EINVAL; |
| | | goto err_free_val; |
| | | } |
| | | @@ -212,6 +242,7 @@ |
| | | } |
| | | |
| | | static struct kpp_alg dh = { |
| | | + .set_params = dh_set_params_pkcs3, |
| | | .set_secret = dh_set_secret, |
| | | .generate_public_key = dh_compute_value, |
| | | .compute_shared_secret = dh_compute_value, |
| | | diff -Nuar linux-at91/crypto/dh_helper.c linux-at91-sama5d4/crypto/dh_helper.c |
| | | --- linux-at91/crypto/dh_helper.c 2019-07-10 18:07:41.000000000 +0800 |
| | | +++ linux-at91-sama5d4/crypto/dh_helper.c 2019-08-26 00:44:57.988610990 +0800 |
| | | @@ -13,6 +13,7 @@ |
| | | #include <linux/string.h> |
| | | #include <crypto/dh.h> |
| | | #include <crypto/kpp.h> |
| | | +#include "dhparameter-asn1.h" |
| | | |
| | | #define DH_KPP_SECRET_MIN_SIZE (sizeof(struct kpp_secret) + 4 * sizeof(int)) |
| | | |
| | | @@ -59,10 +60,13 @@ |
| | | ptr = dh_pack_data(ptr, end, ¶ms->p_size, sizeof(params->p_size)); |
| | | ptr = dh_pack_data(ptr, end, ¶ms->q_size, sizeof(params->q_size)); |
| | | ptr = dh_pack_data(ptr, end, ¶ms->g_size, sizeof(params->g_size)); |
| | | - ptr = dh_pack_data(ptr, end, params->key, params->key_size); |
| | | - ptr = dh_pack_data(ptr, end, params->p, params->p_size); |
| | | - ptr = dh_pack_data(ptr, end, params->q, params->q_size); |
| | | - ptr = dh_pack_data(ptr, end, params->g, params->g_size); |
| | | + if (params->key) |
| | | + ptr = dh_pack_data(ptr, end, params->key, params->key_size); |
| | | + if (params->p) |
| | | + ptr = dh_pack_data(ptr, end, params->p, params->p_size); |
| | | + ptr = dh_pack_data(ptr, end, params->q, params->q_size); |
| | | + if (params->g) |
| | | + ptr = dh_pack_data(ptr, end, params->g, params->g_size); |
| | | if (ptr != end) |
| | | return -EINVAL; |
| | | return 0; |
| | | @@ -96,6 +100,10 @@ |
| | | params->g_size > params->p_size || params->q_size > params->p_size) |
| | | return -EINVAL; |
| | | |
| | | + /* Prevention of out-of-bounds access in decode code path */ |
| | | + if ((!params->key && params->key_size) || (!params->p && params->p_size) || (!params->g && params->g_size)) |
| | | + return -EINVAL; |
| | | + |
| | | /* Don't allocate memory. Set pointers to data within |
| | | * the given buffer |
| | | */ |
| | | @@ -120,3 +128,40 @@ |
| | | return 0; |
| | | } |
| | | EXPORT_SYMBOL_GPL(crypto_dh_decode_key); |
| | | + |
| | | +int dh_get_p(void *context, size_t hdrlen, unsigned char tag, const void *value, |
| | | + size_t vlen) |
| | | +{ |
| | | + struct dh *dh = context; |
| | | + |
| | | + /* invalid key provided */ |
| | | + if (!value || !vlen) |
| | | + return -EINVAL; |
| | | + |
| | | + dh->p = value; |
| | | + dh->p_size = vlen; |
| | | + |
| | | + return 0; |
| | | +} |
| | | + |
| | | +int dh_get_g(void *context, size_t hdrlen, unsigned char tag, |
| | | + const void *value, size_t vlen) |
| | | +{ |
| | | + struct dh *dh = context; |
| | | + |
| | | + /* invalid base provided */ |
| | | + if (!value || !dh->p_size || !vlen || vlen > dh->p_size) |
| | | + return -EINVAL; |
| | | + |
| | | + dh->g = value; |
| | | + dh->g_size = vlen; |
| | | + |
| | | + return 0; |
| | | +} |
| | | + |
| | | +int dh_parse_params_pkcs3(struct dh *dh, const void *param, |
| | | + unsigned int param_len) |
| | | +{ |
| | | + return asn1_ber_decoder(&dhparameter_decoder, dh, param, param_len); |
| | | +} |
| | | +EXPORT_SYMBOL_GPL(dh_parse_params_pkcs3); |
| | | diff -Nuar linux-at91/crypto/dhparameter.asn1 linux-at91-sama5d4/crypto/dhparameter.asn1 |
| | | --- linux-at91/crypto/dhparameter.asn1 1970-01-01 08:00:00.000000000 +0800 |
| | | +++ linux-at91-sama5d4/crypto/dhparameter.asn1 2019-08-26 00:44:57.988610990 +0800 |
| | | @@ -0,0 +1,4 @@ |
| | | +DHParameter ::= SEQUENCE { |
| | | + prime INTEGER ({ dh_get_p }), |
| | | + base INTEGER ({ dh_get_g }) |
| | | +} |
| | | diff -Nuar linux-at91/crypto/Kconfig linux-at91-sama5d4/crypto/Kconfig |
| | | --- linux-at91/crypto/Kconfig 2019-07-10 18:07:41.000000000 +0800 |
| | | +++ linux-at91-sama5d4/crypto/Kconfig 2019-08-26 00:44:57.988610990 +0800 |
| | | @@ -1862,6 +1862,25 @@ |
| | | This option enables the user-spaces interface for AEAD |
| | | cipher algorithms. |
| | | |
| | | +config CRYPTO_USER_API_AKCIPHER |
| | | + tristate "User-space interface for asymmetric key cipher algorithms" |
| | | + depends on NET |
| | | + select CRYPTO_AKCIPHER2 |
| | | + select CRYPTO_USER_API |
| | | + help |
| | | + This option enables the user-space interface for asymmetric |
| | | + key cipher algorithms. |
| | | + |
| | | +config CRYPTO_USER_API_KPP |
| | | + tristate "User-space interface for key protocol primitives algorithms" |
| | | + depends on NET |
| | | + select CRYPTO_KPP2 |
| | | + select CRYPTO_USER_API |
| | | + help |
| | | + This option enables the user-spaces interface for key protocol |
| | | + primitives algorithms. This covers Diffie-Hellman and EC |
| | | + Diffie-Hellman. |
| | | + |
| | | config CRYPTO_HASH_INFO |
| | | bool |
| | | |
| | | diff -Nuar linux-at91/crypto/Makefile linux-at91-sama5d4/crypto/Makefile |
| | | --- linux-at91/crypto/Makefile 2019-07-10 18:07:41.000000000 +0800 |
| | | +++ linux-at91-sama5d4/crypto/Makefile 2019-08-26 00:44:57.988610990 +0800 |
| | | @@ -31,7 +31,12 @@ |
| | | obj-$(CONFIG_CRYPTO_AKCIPHER2) += akcipher.o |
| | | obj-$(CONFIG_CRYPTO_KPP2) += kpp.o |
| | | |
| | | -dh_generic-y := dh.o |
| | | +$(obj)/dhparameter-asn1.o: $(obj)/dhparameter-asn1.c $(obj)/dhparameter-asn1.h |
| | | +$(obj)/dh_helper.o: $(obj)/dhparameter-asn1.h |
| | | +clean-files += dhparameter-asn1.c dhparameter-asn1.h |
| | | + |
| | | +dh_generic-y := dhparameter-asn1.o |
| | | +dh_generic-y += dh.o |
| | | dh_generic-y += dh_helper.o |
| | | obj-$(CONFIG_CRYPTO_DH) += dh_generic.o |
| | | |
| | | @@ -141,6 +146,8 @@ |
| | | obj-$(CONFIG_CRYPTO_USER_API_SKCIPHER) += algif_skcipher.o |
| | | obj-$(CONFIG_CRYPTO_USER_API_RNG) += algif_rng.o |
| | | obj-$(CONFIG_CRYPTO_USER_API_AEAD) += algif_aead.o |
| | | +obj-$(CONFIG_CRYPTO_USER_API_AKCIPHER) += algif_akcipher.o |
| | | +obj-$(CONFIG_CRYPTO_USER_API_KPP) += algif_kpp.o |
| | | obj-$(CONFIG_CRYPTO_ZSTD) += zstd.o |
| | | |
| | | ecdh_generic-y := ecc.o |
| | | diff -Nuar linux-at91/Documentation/crypto/api-kpp.rst linux-at91-sama5d4/Documentation/crypto/api-kpp.rst |
| | | --- linux-at91/Documentation/crypto/api-kpp.rst 2019-07-10 18:07:41.000000000 +0800 |
| | | +++ linux-at91-sama5d4/Documentation/crypto/api-kpp.rst 2019-08-26 00:44:57.988610990 +0800 |
| | | @@ -11,7 +11,7 @@ |
| | | :doc: Generic Key-agreement Protocol Primitives API |
| | | |
| | | .. kernel-doc:: include/crypto/kpp.h |
| | | - :functions: crypto_alloc_kpp crypto_free_kpp crypto_kpp_set_secret crypto_kpp_generate_public_key crypto_kpp_compute_shared_secret crypto_kpp_maxsize |
| | | + :functions: crypto_alloc_kpp crypto_free_kpp crypto_kpp_set_params crypto_kpp_set_secret crypto_kpp_generate_public_key crypto_kpp_compute_shared_secret crypto_kpp_maxsize |
| | | |
| | | Key-agreement Protocol Primitives (KPP) Cipher Request Handle |
| | | ------------------------------------------------------------- |
| | | diff -Nuar linux-at91/drivers/nfc/Kconfig linux-at91-sama5d4/drivers/nfc/Kconfig |
| | | --- linux-at91/drivers/nfc/Kconfig 2019-07-10 18:07:41.000000000 +0800 |
| | | +++ linux-at91-sama5d4/drivers/nfc/Kconfig 2019-08-26 00:57:27.196625361 +0800 |
| | | @@ -48,6 +48,17 @@ |
| | | |
| | | If unsure, say N. |
| | | |
| | | +config NXPRDLIB_BAL |
| | | + tristate "NXP NFCRdLib BAL(Bus Abstraction Layer) driver" |
| | | + depends on SPI |
| | | + help |
| | | + It allows having the BAL within the Kernel while the NFCRdLib runs in |
| | | + user space. This may be required in order to reduce the latency introduced |
| | | + by unnecessary context switches when BAL also runs in user space. |
| | | + |
| | | + If unsure, say N. |
| | | + |
| | | + |
| | | source "drivers/nfc/fdp/Kconfig" |
| | | source "drivers/nfc/pn544/Kconfig" |
| | | source "drivers/nfc/pn533/Kconfig" |
| | | diff -Nuar linux-at91/drivers/nfc/Makefile linux-at91-sama5d4/drivers/nfc/Makefile |
| | | --- linux-at91/drivers/nfc/Makefile 2019-07-10 18:07:41.000000000 +0800 |
| | | +++ linux-at91-sama5d4/drivers/nfc/Makefile 2019-08-26 00:55:27.780623071 +0800 |
| | | @@ -14,6 +14,7 @@ |
| | | obj-$(CONFIG_NFC_TRF7970A) += trf7970a.o |
| | | obj-$(CONFIG_NFC_ST21NFCA) += st21nfca/ |
| | | obj-$(CONFIG_NFC_ST_NCI) += st-nci/ |
| | | +obj-$(CONFIG_NXPRDLIB_BAL) += nxprdlib_bal.o |
| | | obj-$(CONFIG_NFC_NXP_NCI) += nxp-nci/ |
| | | obj-$(CONFIG_NFC_S3FWRN5) += s3fwrn5/ |
| | | obj-$(CONFIG_NFC_ST95HF) += st95hf/ |
| | | diff -Nuar linux-at91/drivers/nfc/nxprdlib_bal.c linux-at91-sama5d4/drivers/nfc/nxprdlib_bal.c |
| | | --- linux-at91/drivers/nfc/nxprdlib_bal.c 1970-01-01 08:00:00.000000000 +0800 |
| | | +++ linux-at91-sama5d4/drivers/nfc/nxprdlib_bal.c 2019-08-26 01:04:45.272633765 +0800 |
| | | @@ -0,0 +1,328 @@ |
| | | +/* |
| | | + * This program is free software; you can redistribute it and/or modify |
| | | + * it under the terms of the GNU General Public License as published by |
| | | + * the Free Software Foundation; either version 2 of the License, or |
| | | + * (at your option) any later version. |
| | | + * |
| | | + * This program is distributed in the hope that it will be useful, |
| | | + * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| | | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| | | + * GNU General Public License for more details. |
| | | + */ |
| | | + |
| | | +#include <linux/init.h> |
| | | +#include <linux/module.h> |
| | | +#include <linux/ioctl.h> |
| | | +#include <linux/fs.h> |
| | | +#include <linux/device.h> |
| | | +#include <linux/err.h> |
| | | +#include <linux/list.h> |
| | | +#include <linux/errno.h> |
| | | +#include <linux/mutex.h> |
| | | +#include <linux/slab.h> |
| | | +#include <linux/compat.h> |
| | | +#include <linux/of.h> |
| | | +#include <linux/of_device.h> |
| | | +#include <linux/of_gpio.h> |
| | | +#include <linux/spi/spi.h> |
| | | +#include <linux/spi/spidev.h> |
| | | +#include <linux/uaccess.h> |
| | | +#include <linux/interrupt.h> |
| | | +#include "nxprdlib_bal.h" |
| | | + |
| | | +#define BALDEV_NAME "bal" |
| | | +#define BALDEV_MAJOR 100 |
| | | +#define BALDEV_MINOR 0 |
| | | + |
| | | +#define BAL_IOCTL_MODE (0x0U) |
| | | + |
| | | +#define BAL_MAX_BUF_SIZE 1024 |
| | | +#define BAL_BUSY_TIMEOUT_SECS 3 |
| | | + |
| | | +#define BAL_MODE_NORMAL (0x0U) |
| | | +#define BAL_MODE_DWL (0x1U) |
| | | + |
| | | +#define BAL_DWL_DIRECTION_BYTE_WR (0x7fU) |
| | | +#define BAL_DWL_DIRECTION_BYTE_RD (0xffU) |
| | | + |
| | | +struct bal_data { |
| | | + dev_t devt; |
| | | + spinlock_t spi_lock; |
| | | + struct spi_device *spi; |
| | | + struct list_head device_entry; |
| | | + |
| | | + struct mutex use_lock; |
| | | + bool in_use; |
| | | + unsigned int busy_pin; |
| | | + int busy_irq; |
| | | + struct completion busy_done; |
| | | + bool first_xfer; |
| | | + u8 *buffer; |
| | | + u8 mode; |
| | | +}; |
| | | + |
| | | + |
| | | +static struct bal_data bal; |
| | | +static struct class *baldev_class; |
| | | + |
| | | +static irqreturn_t |
| | | +bal_busy_isr(int irq, void *dev_id) |
| | | +{ |
| | | + complete(&bal.busy_done); |
| | | + return IRQ_HANDLED; |
| | | +} |
| | | + |
| | | +static int |
| | | +bal_spi_sync_xfer(size_t count) |
| | | +{ |
| | | + struct spi_transfer t = { |
| | | + .rx_buf = bal.buffer, |
| | | + .tx_buf = bal.buffer, |
| | | + .len = count, |
| | | + }; |
| | | + |
| | | + return spi_sync_transfer(bal.spi, &t, 1); |
| | | +} |
| | | + |
| | | +static ssize_t |
| | | +baldev_read(struct file *filp, char __user *buf, size_t count, loff_t *f_pos) |
| | | +{ |
| | | + ssize_t status = 0; |
| | | + |
| | | + if (count > BAL_MAX_BUF_SIZE) |
| | | + return -EMSGSIZE; |
| | | + |
| | | + status = wait_for_completion_timeout( |
| | | + &bal.busy_done, (BAL_BUSY_TIMEOUT_SECS * HZ)); |
| | | + if (status < 0) { |
| | | + dev_err(&bal.spi->dev, "Timeout waiting for BUSY\n"); |
| | | + return status; |
| | | + } |
| | | + if (bal.mode == BAL_MODE_DWL) |
| | | + bal.buffer[0] = BAL_DWL_DIRECTION_BYTE_RD; |
| | | + status = bal_spi_sync_xfer(count); |
| | | + if (status < 0) |
| | | + return status; |
| | | + |
| | | + if (copy_to_user(buf, bal.buffer, count)) |
| | | + return -EFAULT; |
| | | + return count; |
| | | +} |
| | | + |
| | | + |
| | | +static ssize_t |
| | | +baldev_write(struct file *filp, const char __user *buf, |
| | | + size_t count, loff_t *f_pos) |
| | | +{ |
| | | + ssize_t status = 0; |
| | | + |
| | | + if (count > BAL_MAX_BUF_SIZE) |
| | | + return -ENOMEM; |
| | | + if (copy_from_user(bal.buffer, buf, count)) |
| | | + return -EFAULT; |
| | | + if ((bal.mode == BAL_MODE_NORMAL) && |
| | | + !bal.first_xfer) { |
| | | + status = wait_for_completion_timeout( |
| | | + &bal.busy_done, (BAL_BUSY_TIMEOUT_SECS * HZ)); |
| | | + if (status < 0) { |
| | | + dev_err(&bal.spi->dev, "Timeout waiting for BUSY\n"); |
| | | + return status; |
| | | + } |
| | | + } |
| | | + bal.first_xfer = false; |
| | | + status = bal_spi_sync_xfer(count); |
| | | + if (status < 0) |
| | | + return status; |
| | | + |
| | | + return count; |
| | | +} |
| | | + |
| | | + |
| | | +static int baldev_open(struct inode *inode, struct file *filp) |
| | | +{ |
| | | + int status; |
| | | + |
| | | + mutex_lock(&bal.use_lock); |
| | | + if (bal.in_use) { |
| | | + dev_err(&bal.spi->dev, "Can only be opened once!\n"); |
| | | + status = -EBUSY; |
| | | + goto err; |
| | | + } |
| | | + bal.buffer = kmalloc(BAL_MAX_BUF_SIZE, GFP_KERNEL | GFP_DMA); |
| | | + if (bal.buffer == NULL) { |
| | | + status = -ENOMEM; |
| | | + goto err; |
| | | + } |
| | | + bal.mode = BAL_MODE_NORMAL; |
| | | + status = request_threaded_irq(bal.busy_irq, bal_busy_isr, |
| | | + NULL, |
| | | + IRQF_TRIGGER_FALLING, |
| | | + "bal", &bal); |
| | | + if (status < 0) { |
| | | + dev_err(&bal.spi->dev, "Can't request IRQ %d!\n", bal.busy_irq); |
| | | + goto err; |
| | | + } |
| | | + bal.in_use = true; |
| | | + reinit_completion(&bal.busy_done); |
| | | + bal.first_xfer = true; |
| | | + mutex_unlock(&bal.use_lock); |
| | | + |
| | | + nonseekable_open(inode, filp); |
| | | + try_module_get(THIS_MODULE); |
| | | + |
| | | + return 0; |
| | | +err: |
| | | + mutex_unlock(&bal.use_lock); |
| | | + return status; |
| | | +} |
| | | + |
| | | +static int baldev_release(struct inode *inode, struct file *filp) |
| | | +{ |
| | | + int status = 0; |
| | | + |
| | | + free_irq(bal.busy_irq, &bal); |
| | | + module_put(THIS_MODULE); |
| | | + kfree(bal.buffer); |
| | | + bal.in_use = false; |
| | | + return status; |
| | | +} |
| | | + |
| | | +static long |
| | | +baldev_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) |
| | | +{ |
| | | + int status = 0; |
| | | + int flag; |
| | | + |
| | | + if (cmd == BAL_IOCTL_MODE) { |
| | | + bal.mode = (u8)arg; |
| | | + if (bal.mode == BAL_MODE_NORMAL) |
| | | + flag = IRQF_TRIGGER_FALLING; |
| | | + else |
| | | + flag = IRQF_TRIGGER_RISING; |
| | | + free_irq(bal.busy_irq, &bal); |
| | | + status = request_threaded_irq(bal.busy_irq, bal_busy_isr, |
| | | + NULL, flag, "bal", &bal); |
| | | + if (status < 0) |
| | | + dev_err(&bal.spi->dev, |
| | | + "Can't request IRQ %d!\n", bal.busy_irq); |
| | | + } else |
| | | + status = -EINVAL; |
| | | + |
| | | + return status; |
| | | +} |
| | | + |
| | | +static const struct file_operations baldev_fops = { |
| | | + .owner = THIS_MODULE, |
| | | + .write = baldev_write, |
| | | + .read = baldev_read, |
| | | + .open = baldev_open, |
| | | + .unlocked_ioctl = baldev_ioctl, |
| | | + .release = baldev_release, |
| | | + .llseek = no_llseek, |
| | | +}; |
| | | + |
| | | + |
| | | +#ifdef CONFIG_OF |
| | | +static const struct of_device_id baldev_dt_ids[] = { |
| | | + { .compatible = "nxp,bal" }, |
| | | + {}, |
| | | +}; |
| | | +MODULE_DEVICE_TABLE(of, baldev_dt_ids); |
| | | +#endif |
| | | + |
| | | + |
| | | +static int bal_spi_remove(struct spi_device *spi) |
| | | +{ |
| | | + dev_info(&spi->dev, "Removing SPI driver\n"); |
| | | + device_destroy(baldev_class, bal.devt); |
| | | + return 0; |
| | | +} |
| | | + |
| | | +static int bal_spi_probe(struct spi_device *spi) |
| | | +{ |
| | | + struct device *dev; |
| | | + |
| | | + dev_info(&spi->dev, "Probing BAL driver\n"); |
| | | + mutex_init(&bal.use_lock); |
| | | + if (spi->dev.of_node) { |
| | | + bal.busy_pin = |
| | | + of_get_named_gpio(spi->dev.of_node, "busy-pin-gpio", 0); |
| | | + } else { |
| | | + struct bal_spi_platform_data *platform_data = |
| | | + spi->dev.platform_data; |
| | | + |
| | | + if (!platform_data) { |
| | | + dev_err(&spi->dev, "Platform data for BAL not specified!\n"); |
| | | + return -ENODEV; |
| | | + } |
| | | + bal.busy_pin = platform_data->busy_pin; |
| | | + } |
| | | + if (!gpio_is_valid(bal.busy_pin)) { |
| | | + dev_err(&spi->dev, "BUSY pin mapped to an invalid GPIO!\n"); |
| | | + return -ENODEV; |
| | | + } |
| | | + bal.busy_irq = gpio_to_irq(bal.busy_pin); |
| | | + if (bal.busy_irq < 0) { |
| | | + dev_err(&spi->dev, "BUSY pin GPIO can't be used as IRQ!\n"); |
| | | + return bal.busy_irq; |
| | | + } |
| | | + bal.spi = spi; |
| | | + bal.devt = MKDEV(BALDEV_MAJOR, BALDEV_MINOR); |
| | | + init_completion(&bal.busy_done); |
| | | + |
| | | + dev = device_create(baldev_class, &spi->dev, bal.devt, &bal, "bal"); |
| | | + if (IS_ERR(dev)) { |
| | | + dev_err(&spi->dev, "Error creating device!\n"); |
| | | + return PTR_ERR(dev); |
| | | + } |
| | | + |
| | | + gpio_direction_input(bal.busy_pin); |
| | | + spi_set_drvdata(spi, &bal); |
| | | + return 0; |
| | | +} |
| | | + |
| | | +static struct spi_driver bal_spi_driver = { |
| | | + .driver = { |
| | | + .name = "BAL_SPI_DRIVER", |
| | | + .owner = THIS_MODULE, |
| | | + .of_match_table = of_match_ptr(baldev_dt_ids), |
| | | + }, |
| | | + |
| | | + .probe = bal_spi_probe, |
| | | + .remove = bal_spi_remove, |
| | | + }; |
| | | + |
| | | +static int __init baldev_init(void) |
| | | +{ |
| | | + int status; |
| | | + |
| | | + baldev_class = class_create(THIS_MODULE, "bal"); |
| | | + if (IS_ERR(baldev_class)) |
| | | + return PTR_ERR(baldev_class); |
| | | + status = register_chrdev(BALDEV_MAJOR, "bal", &baldev_fops); |
| | | + if (status < 0) |
| | | + goto err_reg_dev; |
| | | + status = spi_register_driver(&bal_spi_driver); |
| | | + if (status < 0) |
| | | + goto err_reg_drv; |
| | | + return 0; |
| | | + |
| | | +err_reg_drv: |
| | | + unregister_chrdev(BALDEV_MAJOR, BALDEV_NAME); |
| | | +err_reg_dev: |
| | | + class_destroy(baldev_class); |
| | | + return status; |
| | | +} |
| | | +module_init(baldev_init); |
| | | + |
| | | +static void __exit baldev_exit(void) |
| | | +{ |
| | | + spi_unregister_driver(&bal_spi_driver); |
| | | + class_destroy(baldev_class); |
| | | + unregister_chrdev(BALDEV_MAJOR, BALDEV_NAME); |
| | | +} |
| | | +module_exit(baldev_exit); |
| | | + |
| | | +MODULE_AUTHOR("Christian Eisendle, <christian@eisendle.net>"); |
| | | +MODULE_DESCRIPTION("NXP RdLib BAL Kernel Module"); |
| | | +MODULE_LICENSE("GPL"); |
| | | diff -Nuar linux-at91/drivers/nfc/nxprdlib_bal.h linux-at91-sama5d4/drivers/nfc/nxprdlib_bal.h |
| | | --- linux-at91/drivers/nfc/nxprdlib_bal.h 1970-01-01 08:00:00.000000000 +0800 |
| | | +++ linux-at91-sama5d4/drivers/nfc/nxprdlib_bal.h 2019-08-26 00:50:21.772617201 +0800 |
| | | @@ -0,0 +1,5 @@ |
| | | +/* nxprdlib_bal.h */ |
| | | + |
| | | +struct bal_spi_platform_data { |
| | | + int busy_pin; |
| | | +}; |
| | | diff -Nuar linux-at91/drivers/spi/spidev.c linux-at91-sama5d4/drivers/spi/spidev.c |
| | | --- linux-at91/drivers/spi/spidev.c 2019-08-18 17:24:57.000000000 +0800 |
| | | +++ linux-at91-sama5d4/drivers/spi/spidev.c 2019-08-22 23:05:23.823524309 +0800 |
| | | @@ -696,6 +696,7 @@ |
| | | static const struct of_device_id spidev_dt_ids[] = { |
| | | { .compatible = "rohm,dh2228fv" }, |
| | | --- linux-at91/drivers/spi/spidev.c 2019-07-10 18:07:41.000000000 +0800 |
| | | +++ linux-at91-sama5d4/drivers/spi/spidev.c 2019-08-26 00:44:57.992610990 +0800 |
| | | @@ -669,6 +669,7 @@ |
| | | { .compatible = "lineartechnology,ltc2488" }, |
| | | + { .compatible = "linux,spidev" }, |
| | | { .compatible = "ge,achc" }, |
| | | { .compatible = "semtech,sx1301" }, |
| | | + { .compatible = "linux,spidev" }, /* add by guowenxue, 2019.08.25 */ |
| | | {}, |
| | | }; |
| | | MODULE_DEVICE_TABLE(of, spidev_dt_ids); |
| | | diff -Nuar linux-at91/include/crypto/dh.h linux-at91-sama5d4/include/crypto/dh.h |
| | | --- linux-at91/include/crypto/dh.h 2019-07-10 18:07:41.000000000 +0800 |
| | | +++ linux-at91-sama5d4/include/crypto/dh.h 2019-08-26 00:44:57.992610990 +0800 |
| | | @@ -37,10 +37,10 @@ |
| | | * @g_size: Size of DH generator G |
| | | */ |
| | | struct dh { |
| | | - void *key; |
| | | - void *p; |
| | | + const void *key; |
| | | + const void *p; |
| | | void *q; |
| | | - void *g; |
| | | + const void *g; |
| | | unsigned int key_size; |
| | | unsigned int p_size; |
| | | unsigned int q_size; |
| | | @@ -88,4 +88,19 @@ |
| | | */ |
| | | int crypto_dh_decode_key(const char *buf, unsigned int len, struct dh *params); |
| | | |
| | | +/** |
| | | + * dh_parse_params_pkcs3() - decodes the PKCS#3 BER encoded buffer of the DH |
| | | + * parameters and stores in the provided struct dh, |
| | | + * pointers to the raw p and g parameters as is, so |
| | | + * that the caller can copy it or MPI parse it, etc. |
| | | + * |
| | | + * @dh: struct dh representation |
| | | + * @param: DH parameters in BER format following PKCS#3 |
| | | + * @param_len: length of parameter buffer |
| | | + * |
| | | + * Return: 0 on success or error code in case of error |
| | | + */ |
| | | +int dh_parse_params_pkcs3(struct dh *dh, const void *param, |
| | | + unsigned int param_len); |
| | | + |
| | | #endif |
| | | diff -Nuar linux-at91/include/crypto/ecdh.h linux-at91-sama5d4/include/crypto/ecdh.h |
| | | --- linux-at91/include/crypto/ecdh.h 2019-07-10 18:07:41.000000000 +0800 |
| | | +++ linux-at91-sama5d4/include/crypto/ecdh.h 2019-08-26 00:44:57.992610990 +0800 |
| | | @@ -40,7 +40,7 @@ |
| | | */ |
| | | struct ecdh { |
| | | unsigned short curve_id; |
| | | - char *key; |
| | | + const char *key; |
| | | unsigned short key_size; |
| | | }; |
| | | |
| | | diff -Nuar linux-at91/include/crypto/if_alg.h linux-at91-sama5d4/include/crypto/if_alg.h |
| | | --- linux-at91/include/crypto/if_alg.h 2019-07-10 18:07:41.000000000 +0800 |
| | | +++ linux-at91-sama5d4/include/crypto/if_alg.h 2019-08-26 00:44:57.992610990 +0800 |
| | | @@ -23,6 +23,8 @@ |
| | | |
| | | #include <crypto/aead.h> |
| | | #include <crypto/skcipher.h> |
| | | +#include <crypto/akcipher.h> |
| | | +#include <crypto/kpp.h> |
| | | |
| | | #define ALG_MAX_PAGES 16 |
| | | |
| | | @@ -51,6 +53,9 @@ |
| | | void *(*bind)(const char *name, u32 type, u32 mask); |
| | | void (*release)(void *private); |
| | | int (*setkey)(void *private, const u8 *key, unsigned int keylen); |
| | | + int (*setpubkey)(void *private, const u8 *key, unsigned int keylen); |
| | | + int (*dhparams)(void *private, const u8 *param, unsigned int paramlen); |
| | | + int (*ecdhcurve)(void *private, const u8 *param, unsigned int paramlen); |
| | | int (*accept)(void *private, struct sock *sk); |
| | | int (*accept_nokey)(void *private, struct sock *sk); |
| | | int (*setauthsize)(void *private, unsigned int authsize); |
| | | @@ -114,6 +119,8 @@ |
| | | union { |
| | | struct aead_request aead_req; |
| | | struct skcipher_request skcipher_req; |
| | | + struct akcipher_request akcipher_req; |
| | | + struct kpp_request kpp_req; |
| | | } cra_u; |
| | | |
| | | /* req ctx trails this struct */ |
| | | @@ -138,7 +145,7 @@ |
| | | * @more: More data to be expected from user space? |
| | | * @merge: Shall new data from user space be merged into existing |
| | | * SG? |
| | | - * @enc: Cryptographic operation to be performed when |
| | | + * @op: Cryptographic operation to be performed when |
| | | * recvmsg is invoked. |
| | | * @len: Length of memory allocated for this data structure. |
| | | */ |
| | | @@ -155,7 +162,7 @@ |
| | | |
| | | bool more; |
| | | bool merge; |
| | | - bool enc; |
| | | + int op; |
| | | |
| | | unsigned int len; |
| | | }; |
| | | diff -Nuar linux-at91/include/crypto/kpp.h linux-at91-sama5d4/include/crypto/kpp.h |
| | | --- linux-at91/include/crypto/kpp.h 2019-07-10 18:07:41.000000000 +0800 |
| | | +++ linux-at91-sama5d4/include/crypto/kpp.h 2019-08-26 00:44:57.992610990 +0800 |
| | | @@ -51,6 +51,9 @@ |
| | | /** |
| | | * struct kpp_alg - generic key-agreement protocol primitives |
| | | * |
| | | + * @set_params: Function allows the caller to set the parameters |
| | | + * separately from the key. The format of the parameters |
| | | + * is protocol specific. |
| | | * @set_secret: Function invokes the protocol specific function to |
| | | * store the secret private key along with parameters. |
| | | * The implementation knows how to decode the buffer |
| | | @@ -74,6 +77,8 @@ |
| | | * @base: Common crypto API algorithm data structure |
| | | */ |
| | | struct kpp_alg { |
| | | + int (*set_params)(struct crypto_kpp *tfm, const void *buffer, |
| | | + unsigned int len); |
| | | int (*set_secret)(struct crypto_kpp *tfm, const void *buffer, |
| | | unsigned int len); |
| | | int (*generate_public_key)(struct kpp_request *req); |
| | | @@ -269,6 +274,29 @@ |
| | | }; |
| | | |
| | | /** |
| | | + * crypto_kpp_set_params() - Set parameters needed for kpp operation |
| | | + * |
| | | + * Function invokes the specific kpp operation for a given alg. |
| | | + * |
| | | + * @tfm: tfm handle |
| | | + * @buffer: Buffer holding the protocol specific representation of the |
| | | + * parameters (e.g. PKCS#3 DER for DH) |
| | | + * @len: Length of the parameter buffer. |
| | | + * |
| | | + * Return: zero on success; error code in case of error |
| | | + */ |
| | | +static inline int crypto_kpp_set_params(struct crypto_kpp *tfm, |
| | | + const void *buffer, unsigned int len) |
| | | +{ |
| | | + struct kpp_alg *alg = crypto_kpp_alg(tfm); |
| | | + |
| | | + if (alg->set_params) |
| | | + return alg->set_params(tfm, buffer, len); |
| | | + else |
| | | + return -EOPNOTSUPP; |
| | | +} |
| | | + |
| | | +/** |
| | | * crypto_kpp_set_secret() - Invoke kpp operation |
| | | * |
| | | * Function invokes the specific kpp operation for a given alg. |
| | | diff -Nuar linux-at91/include/uapi/linux/if_alg.h linux-at91-sama5d4/include/uapi/linux/if_alg.h |
| | | --- linux-at91/include/uapi/linux/if_alg.h 2019-07-10 18:07:41.000000000 +0800 |
| | | +++ linux-at91-sama5d4/include/uapi/linux/if_alg.h 2019-08-26 00:44:57.992610990 +0800 |
| | | @@ -35,9 +35,16 @@ |
| | | #define ALG_SET_OP 3 |
| | | #define ALG_SET_AEAD_ASSOCLEN 4 |
| | | #define ALG_SET_AEAD_AUTHSIZE 5 |
| | | +#define ALG_SET_PUBKEY 6 |
| | | +#define ALG_SET_DH_PARAMETERS 7 |
| | | +#define ALG_SET_ECDH_CURVE 8 |
| | | |
| | | /* Operations */ |
| | | #define ALG_OP_DECRYPT 0 |
| | | #define ALG_OP_ENCRYPT 1 |
| | | +#define ALG_OP_SIGN 2 |
| | | +#define ALG_OP_VERIFY 3 |
| | | +#define ALG_OP_KEYGEN 4 |
| | | +#define ALG_OP_SSGEN 5 |
| | | |
| | | #endif /* _LINUX_IF_ALG_H */ |
| | | diff -Nuar linux-at91/linuxrom-sama5d4.its linux-at91-sama5d4/linuxrom-sama5d4.its |
| | | --- linux-at91/linuxrom-sama5d4.its 1970-01-01 08:00:00.000000000 +0800 |
| | | +++ linux-at91-sama5d4/linuxrom-sama5d4.its 2019-08-22 22:54:12.063511423 +0800 |
| | | +++ linux-at91-sama5d4/linuxrom-sama5d4.its 2019-08-26 00:44:57.992610990 +0800 |
| | | @@ -0,0 +1,37 @@ |
| | | +/* U-Boot uImage source file for "sama5d4_xplained" */ |
| | | + |
| | |
| | | + }; |
| | | +}; |
| | | diff -Nuar linux-at91/Makefile linux-at91-sama5d4/Makefile |
| | | --- linux-at91/Makefile 2019-08-18 17:24:45.000000000 +0800 |
| | | +++ linux-at91-sama5d4/Makefile 2019-08-22 23:16:11.343536730 +0800 |
| | | @@ -1,7 +1,7 @@ |
| | | VERSION = 4 |
| | | PATCHLEVEL = 9 |
| | | SUBLEVEL = 151 |
| | | -EXTRAVERSION = -linux4sam_5.8+ |
| | | +EXTRAVERSION = -linux4sam_5.8 |
| | | NAME = Roaring Lionus |
| | | |
| | | # *DOCUMENTATION* |
| | | @@ -254,8 +254,8 @@ |
| | | # "make" in the configured kernel build directory always uses that. |
| | | --- linux-at91/Makefile 2019-07-10 18:07:41.000000000 +0800 |
| | | +++ linux-at91-sama5d4/Makefile 2019-08-26 01:05:15.808634350 +0800 |
| | | @@ -319,7 +319,9 @@ |
| | | # Alternatively CROSS_COMPILE can be set in the environment. |
| | | # Default value for CROSS_COMPILE is not to prefix executables |
| | | # Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile |
| | | -ARCH ?= $(SUBARCH) |
| | | -CROSS_COMPILE ?= $(CONFIG_CROSS_COMPILE:"%"=%) |
| | | +ARCH ?= arm |
| | | +CROSS_COMPILE ?= /opt/buildroot/cortex-a5/bin/arm-linux- |
| | | + |
| | | |
| | | # Architecture as present in compile.h |
| | | UTS_MACHINE := $(ARCH) |
| | | diff -Nuar linux-at91/security/keys/dh.c linux-at91-sama5d4/security/keys/dh.c |
| | | --- linux-at91/security/keys/dh.c 2019-07-10 18:07:41.000000000 +0800 |
| | | +++ linux-at91-sama5d4/security/keys/dh.c 2019-08-26 00:44:57.992610990 +0800 |
| | | @@ -18,7 +18,7 @@ |
| | | #include <keys/user-type.h> |
| | | #include "internal.h" |
| | | |
| | | -static ssize_t dh_data_from_key(key_serial_t keyid, void **data) |
| | | +static ssize_t dh_data_from_key(key_serial_t keyid, const void **data) |
| | | { |
| | | struct key *key; |
| | | key_ref_t key_ref; |